python中property使用

本文介绍了Python中property的两种使用方法。property用于封装类的成员变量,避免直接操作私有变量,增强了代码的封装性和安全性。通过示例代码展示了如何使用property进行属性的读取和设置,并解析了其工作原理。同时提到了setter作为property的装饰器,以及在使用时方法名的匹配规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、property使用方法一

1、测试代码

class TestProperty(object):
def init(self):
self.__num=0

def setNum(self,newNum):
    self.__num = newNum

def getNum(self):
    return self.__num



#num will auto use getNum or setNum
num = property(getNum,setNum)

t = TestProperty()

print(t.num)

t.num = 1000 # will auto use setNum print(t.num) # will auto uset
getNum

2、测试结果
在这里插入图片描述

3、结果分析及需要注意的事项
1》、property相当于是对函数getNum和setNum方法的封装,使用时无需关心getNum和setNum的实现,直接使用即可。
2》、t.num是调用getNum还是setNum会根据实际的场景来判断,如果是赋值的话就调用setNum,如果获取值得话就调用getNum。
3》、property中传入的是方法名字,方法不能带小括号。

二、property使用方法二

1、测试代码

class TestProperty(object):
def init(self):
self.__num=0

@property
def num(self):
    print("getNum")
    return self.__num

@num.setter
def num(self, newNum):
    print("setNum")
    self.__num = newNum

t = TestProperty()

t.num = 1000 # will auto use setNum print(t.num) # will auto uset
getNum

2、测试结果
在这里插入图片描述

3、结果分析及需要注意的事项
1》第二种方法和第一种方法的效果一样都是调用了类似getNum和setNum方法实现的。
2》setter是property中的装饰器。
3》注意setter前面的方法名称要和@property下面的方法名字相同

说明:使用python做的项目少,大神勿喷,有错误请指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值