靜態欄位是屬於類本身的字段,儲存在類中,執行可以通過物件訪問也可以通過類訪問class province:
#靜態字段,屬於類
country = '中國'
def __init__(self,name):
#普通字段,屬於物件
self.name = name
print(province.country)
# print(province.name)
shanxi = province('陝西')
print(shanxi.name)
普通字段只有在建立物件的時候回產生,屬於物件的,執行只能通過物件訪問
方法:1,普通方法,儲存在類中,由物件呼叫,self->物件
2,靜態方法,加乙個裝飾器@staticmethod,儲存在類中,由類直接呼叫class foo:
def bar(self):
print('bar')
obj = foo()
obj.bar()
foo.bar(obj)
3,類方法,儲存在類中,由類直接呼叫,cls->當前類class foo:
@staticmethod
def sta():
print('123')
foo.sta()
#####應用場景class foo:
@classmethod
def classmethod(cls):#class縮寫
# cls是類名
print(cls)
print('classmethod')
foo.classmethod()
如果物件中需要儲存一些值,執行某功能時,需要使用物件的值,使用普通方法
不需要任何物件中的值,用靜態方法
類方法基本上沒什麼用處,可以使用靜態方法代替
屬性標籤@property:
class foo:
def __init__(self):
self.name = 'a'
def bar(self):
print('bar')
@property
def per(self):
return 1
obj = foo()
r =obj.per
print(r)
python中的普通方法 類方法和靜態方法的區別
面試中遇到這個問題,現在來總結一下 普通方法 預設有個self引數,只有類的物件可以呼叫 類方法 需要加上 classmethod裝飾器,預設cls引數,可以被類和物件呼叫 靜態方法 用 staticmethod裝飾器,類的靜態方法沒有引數,可以直接使用類名呼叫 不管是普通方法還是類方法,預設的se...
靜態類 靜態欄位和靜態方法
1.靜態類 永遠也不需要例項化的類,這種類唯一的作用就是將一組相關的成員組合到一起。static 關鍵字只能用於類,不能用於結構,因為clr 總是允許值型別例項化,沒辦法阻止 by clr via c 靜態類有如下特點 1 不能實現任何介面 因為只有類的例項才可以呼叫類的介面方法 2 內部只能定義靜...
類方法,普通方法和靜態方法
類方法,普通方法和靜態方法 class game object 類屬性 num 0 例項方法 必須得有引數,def init self 例項屬性 self.name laowang 例項方法 必須得有引數 第乙個引數傳遞的是當前的物件 def init a 例項屬性 a.name laowang 類...