1、實例方法self? ?類方法cls? ? 靜態(tài)方法(普通方法)? 實例和類名都可以直接調(diào)用
2、不同點:靜態(tài)方法? 和類方法不可以調(diào)用類里面的屬性值? ?如果你要參數(shù)? 請自己傳遞參數(shù)
3、什么時候定義為靜態(tài)和類方法? ? 當你的某個函數(shù)與其他的類函數(shù)? ?類屬性 沒有一丁點關(guān)系的時候
例子如下:
class HandsomeGuy:
name='希望'
? ? sex='男'
? ? age='18'
? ? def job(self):#示例方法
? ? ? ? print (self.name+'是軟件測試工程師')
@classmethod#類方法
? ? def hobby(cls):
print ('愛好臺球')
@staticmethod#靜態(tài)方法
? ? def specialty():
print ('擅長跑步')
b=HandsomeGuy()
b.job()
HandsomeGuy.hobby()
b.hobby()
HandsomeGuy.specialty()
初始化函數(shù):
class HandsomeGuy:
def __init__(self,name,age):
self.name=name
self.age=age
def job(self):#示例方法
? ? ? ? print (self.name+'是軟件測試工程師')
b1=HandsomeGuy('張三','20')
b2=HandsomeGuy('李四','22')
b1.job()
b2.job()
類的繼承與重寫
父類有的子類都可以拿來用就是繼承(拓展)
若子類有與父類重名的函數(shù),則子類的實例就優(yōu)先調(diào)用子類的函數(shù)就是重寫
多繼承的話,父類之間不要有繼承關(guān)系,否則就是重復繼承就會報錯
如果兩個父類里面有同名函數(shù)的時候,就近原則
class father:
def __init__(self,lastname):
self.lastname=lastname
def money(self):
print('{}先生擁有一百萬'.format(self.lastname))
class son(father):
def car(self):
print('{0}先生擁有一輛車'.format(self.lastname))
def money(self):
print(self.lastname+'先生的兒子擁有一萬元')
a=son('王')
a.money()