Python 靜態方法,類方法,屬性方法

2021-08-18 20:43:34 字數 2471 閱讀 1834

1.靜態方法

#

靜態方法:只是名義上歸類管理,實際上在靜態方法中訪問不了類和例項

class person(object):

def

__init__(self

,name):

self.name=name

@staticmethod

#截斷類與函式關係,不能呼叫類變數

def

eat():

print("%s is eating %s"%('ddd'

,'dd'))

d=person("xiaoming")

d.eat()

若想呼叫self,則需自行傳例項,如下:

#

靜態方法:只是名義上歸類管理,實際上在靜態方法中訪問不了類和例項

class person(object):

def

__init__(self

,name):

self.name=name

@staticmethod

#截斷類與函式關係,不能呼叫類變數

def

eat(self):

print("%s is eating %s"%(self.name,

'dd'))

d=person("xiaoming")

d.eat(d)

2.類方法

#

類方法:只能訪問類變數,不能訪問例項變數

class person(object):

a='xiaoxiong'

def

__init__(self

,name):

self.name=name

@classmethod

def

eat(self):

print("%s is eating %s"%(self.a,

'ddd'))

d=person("xiaoming")

d.eat()

3.屬性方法 (作用 隱藏實現細節)

#

屬性方法

#1.將函式方法變為乙個靜態屬性

class person(object):

def

__init__(self

,name):

self.name=name

@property

def

eat(self):

print("%s is eating %s"%(self.name,

'dd'))

d=person("xiaoming")

d.eat

#2.

修改屬性

class person(object):

def

__init__(self

,name):

self.name=name

self.__food=none

@property

def

eat(self):

print("%s is eating %s"%(self.name,

self.__food))

@eat.setter

def

eat(self

,food):

print("set to food:"

,food)

self.__food=food

d=person("xiaoming")

d.eat='baozi'

d.eat

#3.

刪除屬性

class person(object):

def

__init__(self

,name):

self.name=name

self.__food=none

@property

def

eat(self):

print("%s is eating %s"%(self.name,

self.__food))

@eat.setter

def

eat(self

,food):

print("set to food:"

,food)

self.__food=food

@eat.deleter

#刪除私有屬性

self.__food

def

eat(self):

del

self.__food

print("

刪完了")

d=person("xiaoming")

d.eat

d.eat='baozi'

d.eat

del d.eat #

刪除函式方法私有屬性後即可刪除函式

d.eat

python類方法 靜態方法 屬性方法

staticmethod和 classmethod都可以直接類名.方法名 來呼叫,那他們有什麼區別呢?從它們的使用上來看 staticmethod不需要表示自身物件的self和自身類的cls引數,就跟使用函式一樣。classmethod也不需要self引數,但第乙個引數需要是表示自身類的cls引數。...

Python的靜態方法 類方法 屬性方法和魔法方法

1 靜態方法 作用 靜態方法可以更好的組織 防止 變大後變得比較混亂。特性 靜態方法只是名義上歸類管理,實際上在靜態方法裡訪問不了類或則例項中的任何屬性 靜態方法使用場景 1 我們要寫乙個只在類中執行而不在例項中執行的方法.2 經常有一些跟類有關係的功能但在執行時又不需要例項和類參與的情況下需要用到...

Python中類的方法屬性與方法屬性的動態繫結

最近在 學習python 純粹是自己的興趣愛好,然而並沒有系統地看python 程式設計書籍,覺得上面描述過於繁瑣,在 找了一些學習的 發現廖雪峰老師的 上面的學習資源很不錯,而且言簡意賅,提取了一些 python python 的執行 缺點就是沒有系統的看 python 的書籍,不能及時的將知識的...