📅  最后修改于: 2023-12-03 14:46:44.314000             🧑  作者: Mango
在 Python 中,属性() 函数用于返回一个对象的属性值。这个函数比直接访问对象的属性更加灵活,可以根据自己的需要进行一些处理或操作,一些常用的处理包括对属性的取整、进行字符串处理等。
属性() 函数的语法如下:
property(fget=None, fset=None, fdel=None, doc=None)
参数说明:
fget
:用于获取属性的方法。fset
:用于设置属性的方法。fdel
:用于删除属性的方法。doc
:属性的描述信息。下面,我们来看一个简单的示例,演示如何使用属性() 函数:
class Student:
def __init__(self, name, score):
self._name = name
self._score = score
@property
def name(self):
return self._name
@name.setter
def name(self, value):
if not isinstance(value, str):
raise TypeError('name must be a string!')
self._name = value
@property
def score(self):
return self._score
@score.setter
def score(self, value):
if not isinstance(value, int):
raise TypeError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must be between 0 and 100!')
self._score = value
if __name__ == '__main__':
s = Student('John', 90)
print(s.name) # John
s.name = 'Tom'
print(s.name) # Tom
print(s.score) # 90
s.score = 80
print(s.score) # 80
在上面的示例中,我们定义了一个名叫 Student
的类,并声明了两个属性 name
和 score
。我们使用 @property
装饰器将其转换为属性函数,从而达到对属性的更加灵活的控制。我们可以直接使用属性名访问属性值,也可以对属性进行赋值和删除操作。
fget
,则对象为只读属性。fset
,则对象为只写属性。fdel
,则对象为不可删除属性。@property
装饰器定义属性函数时,函数名必须与属性名相同。