1.属性方法
1.1 私有属性: 用2个下划线表示__
class student:
__name = "xiaoming"
__sex = "man"
__age = "15"
def getName(self):
return self.__name
def setName(self,name):
self.__name = name
s = 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 = name
s = 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 putao
print(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 sleep
c.eat() #human eat
c.name = "xiaoMing"
c.sleep() #xiaoMing sleep
c.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.__color
class Red(Color):
pass
class Green(Color):
pass
print(Red.getColor()) # (255, 0, 0)
print(Green.getColor()) # (0, 255, 0)
@staticmethod
注解在类的静态方法上,
静态方法只能用类对象访问