类方法

      类里面自带的方法,不用实例化就可以调用,(相当于模型上自带的功能)   

      类方法是公共的,在实例方法里面可以随意调用    

      但在类方法里不能调用实例方法,不能使用实例变量,但是他可以调用其他的类方法

    

@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__()