1. 程式人生 > 實用技巧 >類裡的各種方法和變數

類裡的各種方法和變數

類方法

類裡面自帶的方法,不用例項化就可以呼叫,(相當於模型上自帶的功能)

類方法是公共的,在例項方法裡面可以隨意呼叫

但在類方法裡不能呼叫例項方法,不能使用例項變數,但是他可以呼叫其他的類方法

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