''' 对象:从概念层面,实际上时某种事物的抽象。抽象包括数据抽象和过程抽象:数据抽象是定义对象的属性;过程抽象是定义对象的操作。 面向对象的程序设计:强调把数据和操作结合为一个不可分的操作系统 ''' ''' 封装:把客观事物抽象化并封装对象,即数据成员、属性、方法和事件等集合在一个整体内。通过访问控制,可以隐藏内部成员,只允许可信的 对象访问和操作自己的部分数据和方法。 继承:对面向程序设计代码重用的重要方法。继承允许使用现有类的功能。 多态性:派生类具有基类的所有非私有数据和行为以及新类自己定义的所有其他数据和行为。 对象的多个类型的能力称为多态性。 ''' ''' 1.实例属性,通过’‘self.变量名’‘定义的属性,也称实例变量。 ''' class Person: def __init__(self,name,age): self.name=name self.age=age def say_hi(self): print('您好,我叫', self.name) p1 = Person('张三', 25) p1.say_hi() print(p1.age) ''' 2.类属性:类对象本身的变量,即类属性,也称为类变量、静态属性。 类变量名 = 初始值 ''' class Person1: count = 0 # 类属性 name = 'Lily' Person1.count+=1 print(Person1.count) p2 = Person1() # 创建实例对象 print(p2.name) ''' 私有属性和公有属性 以两个下划线开头不以两个下划线结束的是私有的。 ''' class A: __name = 'class A' def get_name(): print(A.__name) A.get_name() # A.__name 报错,私有对象 ''' @ 装饰器 ''' class Person5: def __init__(self,name): self.__name = name @property def name(self): return self.__name p = Person5('王五') print(p.name) ''' 自定义属性 ''' class C1: pass o = C1() o.name = 'custom name' o.name o.__dict__