一、类和对象
- 定义类
class 类名:
- 类中的类变量可以动态增加或删除,使用
del
可删除 - 实例方法的第一个参数会被自动绑定到方法调用者
- 创建对象时无需使用
new
关键字 - 为实例动态添加新方法时,新方法的第一个参数不会自动将调用者绑定到第一个参数,需手动绑定
二、方法
- 类可以直接调用实例方法,但需要手动绑定第一个参数
class User:
def walk(self):
print(self, '正在走')
u = User()
User.walk(u)
User.walk("Mike")
- 类方法由
@classmethod
修饰,方法的第一个参数会自动绑定到类本身 - 静态方法由
@staticmethod
修饰 - py中的类相当于一个命名空间,其中可以放变量、方法和可执行代码
@函数
装饰器,将被装饰的函数替换为@
符号之后的函数的返回值
三、成员变量
- 在类体内定义的变量默认属于类本身
- 使用
property()
函数,设置成员变量 - 使用
@property
修饰方法,可将其变为属性 - 将py类的成员命名为双下划线开头,可达到隐藏成员的效果
- py中并没有提供真正的隐藏机制
- py提供多继承机制
class SubClass(SuperClass1, SuperClass2, ...):