@property 是一个内置的装饰器,它可以将一个方法转换为只读属性。当使用 @property 装饰一个方法时,调用该方法就像访问一个属性一样,不需要使用括号
@property 装饰器可以让类中的方法像属性一样被访问。它将方法伪装成属性,使得调用者可以直接通过点号来获取方法的返回值,而不需要像调用普通方法那样使用括号。这样做可以提高代码的可读性和简洁性,让代码看起来更自然,仿佛访问的是一个普通的属性。
class Example:
def __init__(self):
self._data = {'name': 'John', 'age': 30}
@property
def to_json(self):
return self._data
# 创建 Example 类的实例
e = Example()
# 调用 to_json,就像访问属性一样
result = e.to_json
print(result)
类的定义:Example 类,在 __init__ 方法中初始化了一个私有属性 _data,它是一个字典,模拟 JSON 数据
@property 装饰的方法:定义了一个名为 to_json 的方法,并使用 @property 进行装饰。该方法返回 self._data
实例化类:创建了 Example 类的一个实例 e
调用 to_json:使用 e.to_json 来获取 to_json 方法的返回值,这里没有使用括号,就像访问普通属性一样
与普通方法的对比
如果不使用 @property 装饰器,调用该方法时需要使用括号:
class Example:
def __init__(self):
self._data = {'name': 'John', 'age': 30}
def to_json(self):
return self._data
e = Example()
# 调用 to_json 方法,需要使用括号
result = e.to_json()
print(result)
综上所述,@property 装饰器使得方法可以像属性一样被访问,提高了代码的可读性和易用性

115

被折叠的 条评论
为什么被折叠?



