Python 面向对象
文章平均质量分 79
面向对象基础、绑定和非绑定方法、封装和property、继承和组合、多态和鸭子类型、反射
在飞行-米龙
这个作者很懒,什么都没留下…
展开
-
面向对象目录总结
【零】思维导图【一】初识面向对象Python 初识面向对象-CSDN博客【二】面向对象-封装Python 面向对象之封装和装饰器property_面向对象python封装property-CSDN博客【三】面向对象-继承Python 面向对象之继承和组合_面向对象 组合 继承-CSDN博客【四】面向对象-多态Python 面向对象之多态和鸭子类型-CSDN博客【五】面向对象-绑定和非绑定方法Python 面向对象之绑定和非绑定方法_python 绑定方法-CSDN博客【六】面向对象-原创 2024-04-22 18:57:06 · 282 阅读 · 0 评论 -
Python 面向对象之单例模式
模块只会导入一次,第二次导入时在内存中找到了这个实例对象,所以就不会再次生成一个新的实例【2】通过元类实现有一点难度在生成实例()的时候触发元类()的方法进行判断没有实例,创建了实例在生成第二个实例()的时候再次触发元类()的方法进行判断,有了实例直接返回已经存在,所以不会创建新的实例为什么是用的元类()的方法呢?因为和都是在定义类()的时候执行的仅执行了一次,并且还是在实例()之前触发的所以只能用元类()的【3】通过装饰器实现理解难度比元类好一点通过装饰器原创 2024-01-11 08:53:11 · 700 阅读 · 0 评论 -
Python 面向对象之魔法方法
【2】、:产生一个字符串,可以通过函数重新得到该对象:产生一个字符串,方便阅读:不是魔法方法,是一个属性,普通函数也有,返回注释内容【3】、上下文管理器是一种实现了这两个特殊方法的对象这种对象可以使用语句执行管理,确保资源正确获取和释放:进入上下文时操作,如资源、设置环境等只能有一个参数通常返回一个与上下文相关的对象,可以在语句中使用:离开上下文执行的操作,如释放资源、清理环境等, , , :实例对象:上下文中代码块发生的异常类型,如果没有就是:异常值,没有就是原创 2024-01-10 08:53:51 · 937 阅读 · 0 评论 -
Python 面向对象之元类
元类的作用是控制类的创建也就意味着我们可以定制自己的类的具体行为class机制默认的元类是type(也就是说我们修改metaclass参数就可以自定义元类元类是一切类的基石,所以我们自定义的元类就必须继承type目的在于使用元类的大部分功能,仅定制我们需要的那部分功能# 自定义元类pass# 普通的类,元类默认是typepass# 普通自定义的类,元类是Shooterpass我们知道类的实例化会触发魔法方法__new____init____new__:申请空间,创建并返回一个空对象。原创 2024-01-09 19:32:53 · 403 阅读 · 0 评论 -
Python 面向对象知识点补充
【3】解释在这个例子中火焰豌豆射手和寒冰豌豆射手都实现了多继承,不过他们继承的第一个类起名为ShootMixin,而不是Shoot,这不影响功能。只是告诉读代码的人,这个类是一个Mixin类,表示混入(mix-in),这种命名方式就是明确的告诉别人,这个类作为功能添加到子类中,而不是作为父类注意要点:这个类表示功能,而不是某个物品一般以Mixin、able、ible为后缀责任单一,即多个功能要写多个Mixin类父、子类中都需要这个功能时,只放在父类里面不依赖于子类的实现;子类即便没有继承这原创 2024-01-07 19:57:30 · 418 阅读 · 0 评论 -
Python 面向对象之封装和装饰器property
在场景二中每个取值赋值删除值的方法前面都需要添加装饰器property对应的内容为了简化代码,我们可以使用property()函数来创建一个属性并将相应的取值、赋值和删除值的方法传递给它注意:三个方法的名字不能相同,形参可以不同,传入property函数默认是位置传参注意:三个方法的名字不能相同,形参可以不同,传入property函数默认是位置传参注意:三个方法的名字不能相同,形参可以不同,传入property函数默认是位置传参class A:# 取值方法print("取值方法")# 赋值方法。原创 2024-01-04 20:02:14 · 954 阅读 · 0 评论 -
Python 面向对象之继承和组合
可以看到这两个类之间有太多重复的内容了,所以使用在创建双发射手的时候使用继承可以直接继承他们的属性(名字和攻击力),继承方法(扭动身体的方法),重写方法(攻击)python支撑多继承,新建的类可以继承一个或者多个父类多继承的例子,我们来简单的写以下豌豆僵尸豌豆僵尸继承了豌豆射手类和僵尸类【3】经典类和新式类经典类:没有继承类的所有子类新式类:继承了类的子类在中如果不写继承关系那么就将默认继承object类,所以**里面都是新式类**【二】实例属性查找顺序【1】不存在隐藏属性原创 2024-01-05 19:44:43 · 914 阅读 · 0 评论 -
Python 面向对象之绑定和非绑定方法
绑定到对象上的方法,基本都是为对象服务没有被任何装饰器装饰的方法第一个参数时,实例本身当对象调用实例方法时(),自动将对象当作第一个参数传入当类调用实例方法时(),需要手动传入一个实例一个类的实例方法绑定到不同的对象就是不同的实例方法,内存地址各不相同。【2】类方法(1)概念绑定到类上的方法,基本都是为类服务用装饰器装饰的方法第一个参数时,类本身当类调用类方法时(),自动将类当作第一个参数传入当对象调用实例方法时(),自动将对象的类当作第一个参数传入可以看到地址相同,即是同一个内容【原创 2024-01-03 16:55:50 · 444 阅读 · 0 评论 -
Python 面向对象之多态和鸭子类型
【二】多态性多态的重要性质【1】运行时多态性(动态多态性)也称为方法(函数)重写在运行时,根据对象的实际类型来确定调用哪个方法主要发生在同一层次的类之前在上面的代码中,可以直接提供统一的接口来使用【2】编译时多态性(静态多态性)也称为方法(函数)重载在编译阶段,根据方法的参数类型、个数或顺序来决定调用哪个方法主要发生在同一个类中的同名方法之间在python中并没有静态方法重载,可以通过可变长关键字参数实现在python中并没有静态方法重载,可以通过可变长关键字参数实原创 2024-01-05 22:59:02 · 550 阅读 · 0 评论 -
Python 面向对象之反射
又叫做反射函数万物皆对象(整数、字符串、函数、模块、类等等)万物皆对象(整数、字符串、函数、模块、类等等)万物皆对象(整数、字符串、函数、模块、类等等)这里提到的对象都是大概念的对象判断对象是否有相应的属性或者方法第一个参数是对象,第二个参数属性或者方法的字符串返回值为值,有则,无则注意:类无法找到实例属性【3】(1)概念获取对象的属性或者方法第一个参数是对象,第二个参数属性或者方法的字符串,第三个参数是找不到返回的默认值返回值为属性或者方法或默认值,找不到也没有默认值会报错【3】(1)概念原创 2024-01-06 20:41:15 · 849 阅读 · 0 评论 -
Python 初识面向对象
类是对象相似的数据和功能的集合体,所以类中常见的是变量和函数的定义,但类内部也可以包含其他代码。定义类名:采用驼峰体命名,例如(Student功能方法的定义:通常包含一个selfself是实例对象类里面的成员分为两类属性和方法(函数)# 定义类,类名采用驼峰体命名,例如(ShoppingCar、Student)# 定义植物类# 定义变量的共同属性,没有特殊的要求# 定义植物的主人是戴夫plant_owner = "戴夫"# 功能方法的定义,通常要有一个self(self是实例对象)原创 2024-01-03 15:03:42 · 355 阅读 · 0 评论