亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對象和類

Python 日期和時間

Python 高級知識

Python 參考手冊

Python property() 使用方法及示例

Python 內(nèi)置函數(shù)

property()構(gòu)造返回property屬性。

property()的語法為:

property(fget=None, fset=None, fdel=None, doc=None)

推薦閱讀: Python @property:如何使用它以及為什么?

property()參數(shù)

property()采用四個參數(shù):

  • fget(可選) -用于獲取屬性值的函數(shù)。默認(rèn)為None。

  • fset(可選) -用于設(shè)置屬性值的函數(shù)。默認(rèn)為None。

  • fdel(可選) -用于刪除屬性值的函數(shù)。默認(rèn)為None。

  • doc(可選) -一個字符串,其中包含該屬性的文檔(docstring)。默認(rèn)為None。

property()返回值

property() 從給定的getter,setter和deleter返回屬性屬性。

  • 如果沒有給出參數(shù),property()將返回一個基本屬性,該屬性不包含getter,setter或Deleter。

  • 如果未提供doc,property()則使用getter函數(shù)的docstring。

示例1:使用getter,setter和deleter創(chuàng)建屬性

class Person:
    def __init__(self, name):
        self._name = name

    def get_name(self):
        print('獲取名字:')
        return self._name

    def set_name(self, value):
        print('將名字設(shè)置為: ' + value)
        self._name = value

    def del_name(self):
        print('刪除名字')
        del self._name

    # 設(shè)置屬性使用get_name,set_name
    # 和 del_name 方法
    name = property(get_name, set_name, del_name, 'Name property')

p = Person('張三')
print(p.name)
p.name = '李四'
del p.name

輸出結(jié)果

獲取名字:
張三
將名字設(shè)置為: 李四
刪除名字

在此,_name用作存儲Person名稱的私有變量。

我們還設(shè)置:

  • get_name()是獲取人名的獲取方法,

  • 用setter方法set_name()設(shè)置人名的方法,

  • del_name()方法用來刪除人的名字。

現(xiàn)在,我們通過調(diào)用property()方法來設(shè)置一個新的屬性名。

如程序所示,通過方法內(nèi)部的打印輸出,內(nèi)部引用p.name調(diào)用get name()作為getter, set name()作為setter, del name()作為deleter

示例2:使用@property裝飾器

property()可以使用Python裝飾器 @property來分配getter,setter和Deleter,而不是使用。

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        print('獲取名字:')
        return self._name

    @name.setter
    def name(self, value):
        print('設(shè)置名字為: ' + value)
        self._name = value

    @name.deleter
    def name(self):
        print('刪除名字')
        del self._name

p = Person('王麻子')
print('名字為:', p.name)
p.name = '李二'
del p.name

輸出結(jié)果

獲取名字:
名字為: 王麻子
設(shè)置名字為: 李二
刪除名字

在這里,property()我們沒有使用,而是使用了@property裝飾器。

首先,我們指定name()方法也是Person的屬性。通過使用@property程序中所示的getter方法,可以完成此操作。

接下來,我們使用屬性名稱來指定設(shè)置器和刪除器。

這是通過使用@name.settersetter方法和@name.deleterDeleter方法來完成的。

注意,我們使用了name()具有不同定義的相同方法來定義getter,setter和deleter。

現(xiàn)在,無論何時使用p.name,它都會在內(nèi)部調(diào)用適當(dāng)?shù)膅etter,setter和Deleter,如方法內(nèi)部顯示的打印輸出所示。

Python 內(nèi)置函數(shù)