参考:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017502538658208
https://www.cnblogs.com/yuncong/p/9562784.html
在类中使用,把类的一个方法定义成属性
1.首先定义一个类
class Student(object):
def __init__(self,score):
self._score = score
if __name__ == '__main__':
s = Student(88)
print(s._score)
s._score = 99
print(s._score)
运行结果:
88
99
2.实际上使用set_score等函数
因为实际的编程中,我们使用的是set_score以及get_score这样的函数来设置属性
class Student(object):
def __init__(self,score):
self._score = score
def get_score(self):
return self._score
def set_score(self,value):
if not isinstance(value, int):
raise ValueError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value
3.需要更简单的方法
这里就可以借助property函数,将方法伪装成属性
class Student(object):
def __init__(self,score):
self._score = score
#这个用于伪装
@property
def score(self):
return self._score
#这个用于设置伪装
@score.setter
def score(self,new_value):
if not isinstance(new_value, int):
raise ValueError('score must be an integer!')
if new_value < 0 or new_value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = new_value