1.属性方法
1.1 私有属性: 用2个下划线表示__
class student: __name = "xiaoming" __sex = "man" __age = "15" def getName(self): return self.__name def setName(self,name): self.__name = names = student()s.setName("xiaohong")print(s.getName())
1.2 self
可以把它当做C++中类里面的this指针一样理解,就是对象自身的意思,在用某个对象调用该方法时,就将该对象作为第一个参数传递给self。
1.3 构造
init()构造方法,创建对象
class student: def __init__(self): self.__name = "xiaoming" self.__sex = "man" self.__age = 15 def getName(self): return self.__name def setName(self,name): self.__name = names = student()s.setName("xiaohong")print(s.getName())
1.4 析拆
del()析构方法
删除实例化的对象
class friend(): def __init__(self): self.__name = "putao" self.__location = "jiapali" def __del__(self): print("删除对象") def getName(self): return __name__putao = friend()del putaoprint(putao.getName())
1.5 继承
class 子类(父类)
class people: name = 'human' def sleep(self): print(self.name, "sleep")class chinese(people): def eat(self): print(self.name, "eat")c = chinese()c.sleep() #human sleepc.eat() #human eatc.name = "xiaoMing"c.sleep() #xiaoMing sleepc.eat() #xiaoMing eat
1.6 多继承
class 子类(父类A,父类B)
如果有父类有相同方法,A优先调用
子类覆写父类方法,子类方法优先调用
1.7 类属性和实例属性
类属性:直接用类对象调用的属性
实例属性:实例对象调用的属性
1.8 静态方法和类方法
1.8.1 类方法
类方法传入类本身作为参数cls
使用注解@classmethod
类方法可以动态配置
class Color(): __color = (0,0,0) @classmethod def getColor(cls): if cls.__name__ == 'Red': cls.__color = (255,0,0) elif cls.__name__ == 'Green': cls.__color = (0,255,0) return cls.__colorclass Red(Color): passclass Green(Color): passprint(Red.getColor()) # (255, 0, 0)print(Green.getColor()) # (0, 255, 0)
注解在类的静态方法上, 静态方法只能用类对象访问