靜態方法 類方法 例項方法

2021-10-11 13:29:05 字數 2326 閱讀 8882

靜態方法、類方法、例項方法

靜態方法:

作用:靜態方法可以更好的組織**,防止**變大後變得比較混亂。

特性: 靜態方法只是名義上歸類管理,實際上在靜態方法裡訪問不了類或者例項中的任何屬性

類方法:

作用:無需例項化直接被類呼叫

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

屬性方法:

作用:屬性方法把乙個方法變成乙個屬性,隱藏了實現細節,呼叫時不必加括號直接d.eat即可呼叫self.eat()方法

魔法方法:

__new__ : 先於__init__方法,每生成乙個例項執行一次,建立例項物件 (在記憶體中給物件分配空間)

__init__: 每生成乙個例項就會執行一次,初始化例項物件 (給物件的空間中, 儲存資料)

__call__: 有這個方法, 物件就可以被呼叫

__del__: delete obj 就會呼叫這個方法

classa(

):class_name =

'a'def

__init__

(self, num)

: self.num = num

@staticmethod

# 靜態方法

deffunc1()

:# 方法要操作的資料, 不是這個類裡的

print

('func1'

)pass

@classmethod

# 類方法

deffunc2

(cls)

:# 類方法, 這個方法, 要操作的資料是類中儲存的

print

(cls.class_name)

pass

deffunc3

(self)

:# 例項方法, 這個方法, 要操作的資料, 是例項中的資料

print

(self.num)

pass

a.func1(

)a.func2(

)a = a(

123)

a.func3(

)

屬性方法

classa(

):name =

'aaa'

birthday =

'2010-01-01'

@property

# 屬性方法

defage

(self)

:return

10a = a(

)print

(a.name)

print

(a.age)

# age函式被當做屬性使用

魔法方法

class

person

(object):

def__init__

(self, name, age)

: self.name = name

self.age = age

def__call__

(self,

*args,

**kwargs)

:print

('被呼叫了'

)def

__add__

(self, other)

:return self.age + other.age

def__ge__

(self, value)

:return self.age >= value

def__del__

(self)

:print

('被刪除了'

)class

dog():

def__init__

(self, name, age)

: self.name = name

self.age = age

p1 = person(

'lisi',18

)p2 = person(

'zs',19

)# 就算你不主動刪除, 在指令碼執行完成時, 直譯器也會把p2 刪除

# d1 = dog('xiaohua', 3)

# print(p1 + d1)

# print(d1 + p1)

# print(p1 >= 20)

# l1 = [1, 2, 3]

# l2 = [4, 5, 6]

# print(l1 + l2) # __add__()

# p1()

del p1

del p2

例項方法 靜態方法 類方法

首先新建乙個日期date類,屬性為年,月,日,tomorrow 是例項方法,這個最常見,比較簡單,例項方法的第乙個引數是例項物件self 當我們傳入的年月日是2018 6 4這樣的形式,我們就需要先進行字串處理,在這裡使用了元組的拆包 這是最基本的方式,但是這樣寫會有乙個問題,每次傳參都需要進行字串...

類方法,例項方法,靜態方法

python 中的三種方法,有三種類方法,例項方法,靜態方法,這三種方法都在類中,區別在於呼叫的方式不同。例項物件能的呼叫這三種方法,類只能呼叫類方法和靜態方法。class foo object def init self,name self.name name deford func self 定...

例項方法 類方法 靜態方法

示例方法 第乙個引數為self,必須例項化之後才能呼叫的方法 類方法 使用 classmethod進行裝飾,第乙個引數為cls,可以被類呼叫,也可以被例項呼叫。靜態方法 使用 staticmethod進行裝飾,沒有固定的引數,可以被類呼叫,也可以被例項呼叫,一般可以說跟類和例項沒有關係。classa...