类方法
类里面自带的方法,不用实例化就可以调用,(相当于模型上自带的功能)
类方法是公共的,在实例方法里面可以随意调用
但在类方法里不能调用实例方法,不能使用实例变量,但是他可以调用其他的类方法
@classmethod
def cry(cls):
print('%s'%cls.eye)
类变量
在类中,不在方法中定义的变量 不加self的变量 就是类变量,不需要实例化类就可以调用该变量
class Person:
eye='brown'
实例方法
需要实例化后,才能调用该方法
实例变量
需要实例化后,才能调用该变量
属性方法
看起来像变量的函数
@property
def work_age(self):
self.help()
create_time = 1528860238
result = (time.time() - create_time) / (365*24*60*60)
return round(result,1)
cms = User()
print(cms.work_age)
私有变量和私有方法:
不是公用的,只能在类里面调用,不能再类外面调用,方法或变量以__开头的,就是私有
静态方法
一个和类没有关系的方法
不能调用实例方法,也不能调用类方法
@staticmethod
def help():
print('help')
继承
子类继承父类公共的方法,也可以重写父类的方法
父类的私有方法和私有变量不能继承
重写:
直接覆盖父类方法
在父类的基础上添加新功能
class Car:
def run(self):
print('run')
class CcxCar(Car): #覆盖式的
def run(self):
print('拐弯跑')
class CmcCar(Car): #在父类方法的基础上做修改
def run(self):
super().run()
print('充电')
魔鬼方法:
一个类里面有一些特殊作用的方法,不需要你调用,在一些情况下会自动运行
类里面 __funname__ 都是魔法方法,有一些特殊作用,比如 __init__()