python中property使用

一、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做的项目少,大神勿喷,有错误请指教。

posted @ 2019-04-14 17:17  ISmileLi  阅读(57)  评论(0编辑  收藏  举报