面向對象-clssmethod staticmethod @property

1、classmethod介紹

介紹:@classmethod修飾符咱們從名稱就能夠知道,這是一個類方法,那麼和普通的類中的方法有什麼不一樣的html

a、類方法,是由類自己調用的,無需實例化類,直接用類自己調用便可,可是要注意實例對象也能夠調用類方法python

b、類方法,無須要要一個self參數,這個self參數表示類的實例對象,可是他須要一個cls參數,這個參數表示類自己函數

c、類方法,能夠調用類的屬性,類的方法,類的實例對象spa

 

 

下面咱們正常進入介紹classmethod這個修飾符htm

一、類方法能夠由類調用,也能夠由實例對象調用對象

class Test:
# n=1
# def func1(self):
# print('你好')
# @classmethod
# def func2(cls):
# cls.func1(object)
# cls.func3()
# return cls.n
# @classmethod
# def func3(cls):
# print('大帥哥')
# a=Test.func2()
# b=Test()
# # b.func2()
# # print(b.func2())
# print(a)

運行結果:
你好
大帥哥
1

python staticmethod 返回函數的靜態方法。blog

該方法不強制要求傳遞參數,以下聲明一個靜態方法:get

class C(object): @staticmethod def f(arg1, arg2, ...): ...

以上實例聲明瞭靜態方法 f,從而能夠實現實例化使用 C().f(),固然也能夠不實例化調用該方法 C.f()。it

函數語法

staticmethod(function)

一.定義

裝飾器@property
能夠把方法變成屬性使用
做用: 控制類內成員的獲取 設置 刪除
獲取 @property
設置 @自定義名.setter
刪除 @自定義名.deleterio

二.具體實現

1.方法一

class MyClass():
    def __init__(self,name):
        self.name = name

    #獲取
    @property
    def username(self):
        return self.name

    #設置
    @username.setter
    def username(self,val):
        self.name = val
#刪除
    @username.deleter
    def username(self):
        del self.name
obj = MyClass("ONE")
# 獲取
print(obj.username)

# 設置
obj.username = "two"
print(obj.username)

# 刪除 del 調用刪除相關的方法del obj.username# print(obj.username)

相關文章
相關標籤/搜索