python将方法转为只读属性

@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 装饰器使得方法可以像属性一样被访问,提高了代码的可读性和易用性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值