self.__class__.屬性
的方式來改變@staticmethod
修飾器建立類別名.變數
class M:
time = 2
def __init__(self):
self.x = "x"
@staticmethod
def print_something(something):
# 使用 M.time 呼叫
print(something * M.time)
c = M()
c.print_something("abc")
# abcabc
# 單純執行參數相關
# 使用 M.time 呼叫 time
@classmethod
修飾器建立cls.變數
class M:
time = 2
def __init__(self, c):
self.color = c
@classmethod
def color_black(cls):
return cls("black")
@classmethod
def print_something(cls, something):
# 使用 cls.time 呼叫
print(something * cls.time)
c = M.color_black()
# 透過類別方法建立黑色的物件
print(c.color)
# black
c.print_something("abc")
# abcabc
# 使用 cls.time 呼叫 time
連續幾天下來,似乎有比較懂類別了,希望不是錯覺