類方法和靜態方法
class person(object):
__slots__ = ("name","age")
# 類屬性
num = 0
# 建構函式
def __init__(self,name,age):
# 例項屬性
self.name = name
self.age = age
# 例項函式:形參列表的第乙個引數必須為self,表示當前物件
def show(self):
print("show",self)
# 類函式:形參列表的第乙個引數為cls,表示當前類
# 使用@classmethod裝飾器修飾乙個函式,該函式被稱為類函式
# cls和self類似,都不是關鍵字,可以是任意的識別符號
@classmethod
def func1(cls):
print("func11", cls)
# cls就相當於是當前類person,所以可以通過cls建立物件
c = cls("bbb",6)
# 在類函式中呼叫例項 函式,必須先通過cls建立物件,然後再呼叫
# c.show()
# 靜態函式
@staticmethod
def func2():
print("func~~2222")
p = person("aaa",5)
# 例項函式只能通過物件呼叫
p.show()
# 類函式可以通過類名或者物件呼叫
p.func1()
person.func1()
# 靜態函式可以通過類名或者物件呼叫
p.func2()
person.func2()
'''show <__main__.person object at 0x000002c03c531518>
func11 func11 func~~2222
func~~2222
'''# 如果需要在函式中建立當前類的物件,則選用類函式
# 如果需要封裝乙個工具類,建議使用類函式或者靜態函式
類方法與靜態方法
方法是通過 def 申明創造的函式 方法的工作方式與簡單的函式一樣。但是有種例外的情況 方法的第乙個引數接受的是例項物件。1,例項方法 def f self,arg 2,類方法 使用類屬性 classmethod defcf cls,arg 3,靜態方法 不包含任何有關類的資訊 staticmeth...
C 靜態類 靜態方法與非靜態方法比較
在類 class 上加入static修飾,表示該類無法被例項化,並將該類中,無法例項化變數或函式 靜態類的主要特性 所以,可以在普通類中新增靜態方法,但是靜態類中的方法 變數都必須是靜態的。一 靜態方法 使用static修改的方法就是靜態方法,否則就是非靜態方法。二 1 靜態成員屬於類的所以,非靜態...
類方法,靜態方法
coding utf 8 class test object walk 為普通方法只能被物件instance呼叫,play 為靜態方法可以被物件和classname呼叫,eat為類方法,可以被物件和classname呼叫。此外pep8中一種程式設計風格,self通常用作例項方法的第一引數,cls通常...