類裡的各種方法和變數
阿新 • • 發佈:2020-08-16
類方法
類裡面自帶的方法,不用例項化就可以呼叫,(相當於模型上自帶的功能)
類方法是公共的,在例項方法裡面可以隨意呼叫
但在類方法裡不能呼叫例項方法,不能使用例項變數,但是他可以呼叫其他的類方法
@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): #在父類方法的基礎上做修改 defrun(self): super().run() print('充電')
魔鬼方法:
一個類裡面有一些特殊作用的方法,不需要你呼叫,在一些情況下會自動執行
類裡面 __funname__ 都是魔法方法,有一些特殊作用,比如 __init__()