1,当私有属性无法访问时需要设置set get方法来在外部使用它
class Test(object):
def __init__(self):
self.__num = 0
def setnum(self,newnum):
if isinstance(newnum,int):
num=newnum
else:
print('newnum not int')
def getnum(self):
return self.__num
2,可以使用property方法将get 和 set转化成可访问的属性
class Test(object):
def __init__(self):
self.__num = 0
def setnum(self, newnum):
print("i am set")
if isinstance(newnum,int):
self.__num = newnum
else:
print('newnum not int')
def getnum(self):
print("i am get")
return self.__num
num = property(getnum,setnum)
t = Test()
print(t.num)
print('-'*50)
t.num = 2
print(t.num)
3,使用property替代set 与get方法
class Test(object):
def __init__(self):
self.__num = 0
@property
def num(self):
print("i am get")
return self.__num
@num.setter
def num(self, newnum):
print("i am set")
if isinstance(newnum, int):
self.__num = newnum
else:
print('newnum not int')
t = Test()
print(t.num)
print('-'*50)
t.num = 2
print(t.num)