Python之property的使用
属性property
1. 私有属性添加getter和setter方法
class Money(object):
def __init__(self):
self.__money=100
def setMoney(self,value):
if isinstance(value,int):
self.__money=value
else:
print('error:不是整型数字')
def getMoney(self):
return self.__money
2. 使用property升级getter和setter方法
class Money(object):
def __init__(self):
self.__money=100
def setMoney(self,value):
if isinstance(value,int):
self.__money=value
else:
print('error:不是整型数字')
def getMoney(self):
return self.__money
num=property(getMoney,setMoney)
a=Money()
print(a.getMoney())
a.num=10
print(a.num)
print(a.getMoney())
结果:
D:\Anaconda\python.exe E:/pythonwork/黑马/私有化.py
100
10
10
Process finished with exit code 0
3. 使用property取代getter和setter方法
@property 成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用:
1.将方法转换为只读
2.重新实现⼀个属性的设置和读取方法,可做边界判定
class Money(object):
def __init__(self):
self.__money=100
@property
def Money(self):
return self.__money
@Money.setter
def Money(self,value):
if isinstance(value,int):
self.__money=value
else:
print('error:不是整型数字')
a=Money()
a.num=10
print(a.num)
D:\Anaconda\python.exe E:/pythonwork/黑马/私有化.py
10
Process finished with exit code 0