1. 程式人生 > >python靜態屬性,靜態方法,類方法

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

類的屬性 tool 方法 method nbsp 靜態屬性 world assm 函數調用

#靜態屬性的作用是吧類的方法隱藏起來(可以把背後的邏輯隱藏起來),讓用戶感覺是在電泳屬性,而不是方法 class Static: attribute='屬性' def __init__(self,parameter1,parameter2,parameter3): self.parameter1 = parameter1 self.parameter2 = parameter2 self.parameter3 = parameter3 def test(self): return ('test',self.parameter1) @property def print_static(self): print(Static.attribute) return ('這個是靜態屬性的結果 %s %s %s'%(self.parameter1,self.parameter2,self.parameter3)) s=Static('hello','world','!') print(s.test()) print(s.print_static)

靜態方法:

#靜態方法只是名義上歸類管理,不能使用類變量和實例變量,是類的工具包
#我個人的理解是扯虎皮做大旗,靜態方法只是借用類的大樹下的一個獨立函數

class Static:
    attribute='屬性'
    def __init__(self,parameter):
        self.parameter=parameter
    def test(self):
        return ('test',self.parameter)

    @staticmethod
    def print_static(a,b,c):
        print(Static.attribute)
        return ('這個是靜態方法',a+b+c)

s=Static('hello')
print(s.test())
print(Static.print_static(2,4,6))

類方法:

'''
@classmethod 類方法是通過類裏面的函數調用類本身的屬性
'''
class Class():
    attribute='類的屬性'#類的屬性
    def __init__(self,parameter): #這裏的self是一個對象
        self.parameter=parameter #實例的屬性
    def test(self):
        print(self)
        return  ('類方法測試調用',self.parameter)

    @classmethod#類方法只能調用類屬性,不能調用實例屬性
    def print_class(cls): #這裏的cls是一個類
        print(cls)
        return ('通過類調用類的屬性',cls.attribute)

x=Class('實例的屬性')
print(x.test())
print(x.parameter)
print(Class.print_class())
print(Class.attribute)


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