Python中普通欄位和靜態字段

2021-09-28 15:21:10 字數 1275 閱讀 5744

class province:

#靜態字段,屬於類

country = '中國'

def __init__(self,name):

#普通字段,屬於物件

self.name = name

print(province.country)

# print(province.name)

shanxi = province('陝西')

print(shanxi.name)

靜態欄位是屬於類本身的字段,儲存在類中,執行可以通過物件訪問也可以通過類訪問

普通字段只有在建立物件的時候回產生,屬於物件的,執行只能通過物件訪問

方法:1,普通方法,儲存在類中,由物件呼叫,self->物件

class foo:

def bar(self):

print('bar')

obj = foo()

obj.bar()

foo.bar(obj)

2,靜態方法,加乙個裝飾器@staticmethod,儲存在類中,由類直接呼叫

class foo:

@staticmethod

def sta():

print('123')

foo.sta()

3,類方法,儲存在類中,由類直接呼叫,cls->當前類

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 類...