新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:Pythonproperty()
內(nèi)置函數(shù)屬性()有助于定義 Python 類屬性。它為實(shí)例屬性提供了一個(gè)接口,并提供了與 java 和 c#相同的屬性。

**property(fget=None, fset=None, fdel=None, doc=None)** #where all arguments are optional
屬性()參數(shù):
接受四個(gè)可選參數(shù)。如果在沒(méi)有任何參數(shù)的情況下調(diào)用property(),它將返回一個(gè)基屬性。
| 參數(shù) | 描述 | 必需/可選 |
|---|---|---|
| FGD!FGD | 用于獲取屬性值的函數(shù)。默認(rèn)為無(wú)。 | 可選擇的 |
| fset | 用于設(shè)置屬性值的函數(shù)。默認(rèn)為無(wú)。 | 可選擇的 |
| -貿(mào)易 | 用于刪除屬性值的函數(shù)。默認(rèn)為無(wú)。 | 可選擇的 |
| 文件 | 包含屬性文檔(docstring)的字符串。默認(rèn)為無(wú)。 | 可選擇的 |
屬性()返回值
如果未提供參數(shù) doc,則property()將采用 getter 函數(shù)的 docstring。
| 投入 | 返回值 | | if 參數(shù) | 屬性屬性 |
Python 中property()方法的示例
示例 1:用 getter、setter 和 deleter 創(chuàng)建屬性
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
print('Getting name')
return self._name
def set_name(self, value):
print('Setting name to ' + value)
self._name = value
def del_name(self):
print('Deleting name')
del self._name
# Set property to use get_name, set_name
# and del_name methods
name = property(get_name, set_name, del_name, 'Name property')
p = Person('Adam')
print(p.name)
p.name = 'John'
del p.name
輸出:
Getting name
The name is: Adam
Setting name to John
Deleting name注意:現(xiàn)在我們通過(guò)調(diào)用property()方法設(shè)置一個(gè)新的屬性屬性名。如程序中所示,通過(guò)方法內(nèi)部的打印輸出,引用 p.name 在內(nèi)部調(diào)用property()作為獲取器,set_name()作為設(shè)置器,set_name()作為刪除器。
示例 2:使用@property 裝飾器
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
print('Getting name')
return self._name
@name.setter
def name(self, value):
print('Setting name to ' + value)
self._name = value
@name.deleter
def name(self):
print('Deleting name')
del self._name
p = Person('Adam')
print('The name is:', p.name)
p.name = 'John'
del p.name
輸出:
Getting name
The name is: Adam
Setting name to John
Deleting name 名稱欄目:創(chuàng)新互聯(lián)Python教程:Pythonproperty()
網(wǎng)頁(yè)URL:http://m.fisionsoft.com.cn/article/coghojh.html


咨詢
建站咨詢
