Python3中面向对象 OOP
定义:
python中通过关键字 class 实现类的定义:
class ClassName(object): pass
获取成员变量:ClassName.变量名
修改成员变量:ClassName.变量名 = xxxx
实例化类对象:methodName= ClassName()
常用内置函数:
__init__:构造函数, 主要用来创建对象时初始化对象(为成员变量赋值)
__del__:析构函数,主要在销毁对象时调用(例如数据库连接)
成员变量:
再类中定义成员变量需要用“self”关键字
静态函数:
使用装饰器 "@staticmethod"
class ClassName(object): @staticmethod def printMethod(): print('this is static method') # 可以通过类名直接进行调用 ClassName.printMethod()
类函数:
使用装饰器 "@classmethod"
class ClassName(object): @classmethod def objMethod(cls,name,color): print('this is static method') # 第一个参数必须为阴性参数cls,替代类名本身
私有成员变量:
python中没有public和private等关键字,它使用"__"开始命名的成员均为私有成员
继承
在python中所有类均继承object类
继承自定义Base类
如需重载函数则只需要在子类中重写和父类名称相同的方法
python中允许多继承,但是如果调用方法存在于每个父类中,则python解析器会调用最近类的方法
class A(object): class B(A) class C class D(B,C) # 查找方法顺序 D->B->A->C