對象的綁定方法:是由對象來調用,會將調用的對象當作第一個參數傳入python
類的綁定方法:是由類來調用,會將調用的類當作第一個參數傳入算法
是一個python內置的裝飾器,在類內部定義方法時進行裝飾,將類內部的方法變爲「類的綁定辦法」函數
class Foo: __date = '天王蓋地虎,Mr沈真牛批' def __init__(self,name,age): self.name = name self.age = age @classmethod def check_date(cls,name,pwd): # 經過classmethod裝飾器,self變爲cls obj = cls(name,pwd) if name == 'shen' and pwd == 123: print(cls.__date) else: print('權限不足') Foo.check_date('shen',123) # 天王蓋地虎,Mr沈真牛批 Foo.check_date('tate',123) # 權限不足
是python內置的裝飾器,在類的內部定義方法時使用,將類內部的方法變爲「非綁定方法」ui
非綁定方法:能夠由對象或類來調用,誰來調用都是普通的方法(普通函數),方法須要幾個參數就要傳幾個參數,不會將自身傳入code
# uuid用於產生隨機字符串的模塊,由時間戳以及某種算法組合而成,會產生一串世界上獨一無二字符串 import uuid class Foo: date = uuid.uuid4() @staticmethod def get_date(): print('天王蓋地虎,Mr沈真牛批') @staticmethod def info(name,age,sex): print(f'姓名: {name}, 年齡: {age}, 性別: {sex}, id: {Foo.date}') # 由對象調用 obj = Foo() obj.get_date() # 天王蓋地虎,Mr沈真牛批 obj.info('shen',18,'male') # 姓名: shen, 年齡: 18, 性別: male, id: 08ef31e6-ccdf-4e14-8db4-a390c3787acf # 由類來調用 Foo.get_date() # 天王蓋地虎,Mr沈真牛批 Foo.info('shen',18,'male') # 姓名: shen, 年齡: 18, 性別: male, id: 08ef31e6-ccdf-4e14-8db4-a390c3787acf
isinstance:判斷一個對象是不是一個類的實例,若是是返回True,若是不是返回False對象
issubclass:判斷一個類是不是另外一個類的子類,若是是返回True,若是不是返回False字符串
class Foo: def __init__(self): pass class Goo: def __init__(self): pass foo_obj = Foo() goo_obj = Goo() print(isinstance(foo_obj, Foo)) # True print(isinstance(goo_obj, Foo)) # False
class Foo: def __init__(self): pass class Sun(Foo): def __init__(self): pass class Goo: def __init__(self): pass print(issubclass(Sun,Foo)) # True print(issubclass(Goo,Foo)) # False