介紹:@classmethod修飾符咱們從名稱就能夠知道,這是一個類方法,那麼和普通的類中的方法有什麼不一樣的html
a、類方法,是由類自己調用的,無需實例化類,直接用類自己調用便可,可是要注意實例對象也能夠調用類方法python
b、類方法,無須要要一個self參數,這個self參數表示類的實例對象,可是他須要一個cls參數,這個參數表示類自己函數
c、類方法,能夠調用類的屬性,類的方法,類的實例對象spa
下面咱們正常進入介紹classmethod這個修飾符htm
一、類方法能夠由類調用,也能夠由實例對象調用對象
class Test:
# n=1
# def func1(self):
# print('你好')
# @classmethod
# def func2(cls):
# cls.func1(object)
# cls.func3()
# return cls.n
# @classmethod
# def func3(cls):
# print('大帥哥')
# a=Test.func2()
# b=Test()
# # b.func2()
# # print(b.func2())
# print(a)
運行結果:
你好
大帥哥
1
python staticmethod 返回函數的靜態方法。blog
該方法不強制要求傳遞參數,以下聲明一個靜態方法:get
class C(object): @staticmethod def f(arg1, arg2, ...): ...
以上實例聲明瞭靜態方法 f,從而能夠實現實例化使用 C().f(),固然也能夠不實例化調用該方法 C.f()。it
staticmethod(function)
裝飾器@property
能夠把方法變成屬性使用
做用: 控制類內成員的獲取 設置 刪除
獲取 @property
設置 @自定義名.setter
刪除 @自定義名.deleterio
class MyClass():
def __init__(self,name):
self.name = name
#獲取
@property
def username(self):
return self.name
#設置
@username.setter
def username(self,val):
self.name = val
#刪除
@username.deleter
def username(self):
del self.name
obj = MyClass("ONE")
# 獲取
print(obj.username)
# 設置
obj.username = "two"
print(obj.username)
# 刪除 del 調用刪除相關的方法del obj.username# print(obj.username)