av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Python 屬性裝飾器——@property

@property裝飾器是 Python 中用于屬性()函數(shù)的內(nèi)置裝飾器。 在類中的任何方法上使用@property裝飾器,將該方法用作屬性。

您可以使用以下三個(gè)裝飾器來(lái)定義屬性:

  • @property:將方法聲明為屬性。
  • @ 。setter:為將值設(shè)置為屬性的屬性指定 setter 方法。
  • @ 。deleter:將 delete 方法指定為刪除屬性的屬性。

申報(bào)財(cái)產(chǎn)

下面將方法聲明為屬性。此方法必須返回屬性值。

Example: @property decorator

class Student:

    def __init__(self, name):
        self.__name = name

    @property
    def name(self):
        return self.__name

上圖,@property裝飾器應(yīng)用于name()方法。 name()方法返回私有實(shí)例屬性值__name。 因此,我們現(xiàn)在可以使用name()方法作為屬性來(lái)獲取__name屬性的值,如下所示。

Example: Access Property decorator

>>> s = Student('Steve')
>>> s.name 
'Steve'

屬性設(shè)置器

上面,我們將name()方法定義為一個(gè)屬性。我們只能訪問(wèn)name屬性的值,但不能修改它。 要修改屬性值,我們必須使用@property-name.setter裝飾器為name屬性定義 setter 方法,如下所示。

Example: Property Setter

class Student:

    def __init__(self, name):
        self.__name=name

    @property
    def name(self):
        return self.__name

    @name.setter   #property-name.setter decorator
    def name(self, value):
        self.__name = value

上面,我們有兩個(gè)name()方法的重載。一個(gè)是 getter 方法,另一個(gè)是 setter 方法。 setter 方法必須具有可用于分配給基礎(chǔ)私有屬性的值參數(shù)。 現(xiàn)在,我們可以檢索和修改屬性值,如下所示。

Example: Access Property

>>> s = Student('Steve')
>>> s.name 
'Steve'
>>> s.name = 'Bill'
'Bill'

屬性刪除

使用@property-name.deleter裝飾器定義刪除屬性的方法,如下所示。

Example: Property Deleter

class Student:
    def __init__(self, name):
        self.__name = name

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self, value):
        self.__name=value

    @name.deleter   #property-name.deleter decorator
    def name(self, value):
        print('Deleting..')
        del self.__name

當(dāng)您使用關(guān)鍵字del刪除屬性時(shí),將調(diào)用刪除程序,如下所示。一旦刪除屬性,就不能使用同一實(shí)例再次訪問(wèn)它。

Example: Delete a Property

>>> s = Student('Steve')
>>> del s.name 
Deleting.. 
>>> s.name 
Traceback (most recent call last):                              
File "", line 1, in             
    p.name                                                      
File "C:\Python37\test.py", line 6, in name                     
    return self.__name                                          
AttributeError: 'Student' object has no attribute '_Student__name'

網(wǎng)站標(biāo)題:Python 屬性裝飾器——@property
網(wǎng)頁(yè)鏈接:http://uogjgqi.cn/article/cochghh.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流