class MathScore():
def __init__(self, std_id, score):
self.std_id = std_id
self.score = score
def check(self):
if self.score >= 60:
return 'pass'
else:
return 'failed'
xiaoming = MathScore(10, 90) xiaoming.score Out[3]: 90 xiaoming.std_id Out[4]: 10 xiaoming.check() Out[5]: 'pass'
xiaoming = MathScore(10, -90) xiaoming.score Out[8]: -90 xiaoming.check() Out[9]: 'failed'
class MathScore():
def __init__(self, std_id, score):
self.std_id = std_id
if score < 0:
raise ValueError("Score can't be negative number!")
self.score = score
def check(self):
if self.score >= 60:
return 'pass'
else:
return 'failed'
xiaoming = MathScore(10, -90)
Traceback (most recent call last):
File "<ipython-input-12-6faad631790d>", line 1, in <module>
xiaoming = MathScore(10, -90)
File "C:/Users/xu_zh/.spyder2-py3/temp.py", line 14, in __init__
raise ValueError("Score can't be negative number!")
ValueError: Score can't be negative number!
xiaoming = MathScore(10, 90) xiaoming = -10 # 无法判断出错误
class MathScore():
def __init__(self, std_id, score):
self.std_id = std_id
if score < 0:
raise ValueError("Score can't be negative number!")
self.__score = score
def check(self):
if self.__score >= 60:
return 'pass'
else:
return 'failed'
def get_score(self):
return self.__score
def set_score(self, value):
if value < 0:
raise ValueError("Score can't be negative number!")
self.__score = value
class MathScore():
def __init__(self, std_id, score):
self.std_id = std_id
if score < 0:
raise ValueError("Score can't be negative number!")
self.__score = score
def check(self):
if self.__score >= 60:
return 'pass'
else:
return 'failed'
def __get_score__(self):
return self.__score
def __set_score__(self, value):
if value < 0:
raise ValueError("Score can't be negative number!")
self.__score = value
score = property(__get_score__, __set_score__)
xiaoming = MathScore(10, 90)
xiaoming.score
Out[30]: 90
xiaoming.score = 80
xiaoming.score
Out[32]: 80
xiaoming.score = -90
Traceback (most recent call last):
File "<ipython-input-33-aed7397ed552>", line 1, in <module>
xiaoming.score = -90
File "C:/Users/xu_zh/.spyder2-py3/temp.py", line 28, in __set_score__
raise ValueError("Score can't be negative number!")
ValueError: Score can't be negative number!
class MathScore():
def __init__(self, std_id, score):
self.std_id = std_id
if score < 0:
raise ValueError("Score can't be negative number!")
self.__score = score
def check(self):
if self.__score >= 60:
return 'pass'
else:
return 'failed'
@property
def score(self):
return self.__score
@score.setter
def score(self, value): #注意方法名称要与上面一致,否则会失效
if value < 0:
raise ValueError("Score can't be negative number!")
self.__score = value
class NonNegative():
def __init__(self):
pass
def __get__(self, ist, cls):
return 'descriptor get: ' + str(ist.__score ) #这里加上字符描述便于看清调用
def __set__(self, ist, value):
if value < 0:
raise ValueError("Score can't be negative number!")
print('descriptor set:', value)
ist.__score = value
class MathScore():
score = NonNegative()
def __init__(self, std_id, score):
self.std_id = std_id
if score < 0:
raise ValueError("Score can't be negative number!")
self.__score = score
def check(self):
if self.__score >= 60:
return 'pass'
else:
return 'failed'
xiaoming = MathScore(10, 90) xiaoming.score Out[67]: 'descriptor get: 90' xiaoming.score = 80 descriptor set: 80 wangerma = MathScore(11, 70) wangerma.score Out[70]: 'descriptor get: 70' wangerma.score = 60 Out[70]: descriptor set: 60 wangerma.score Out[73]: 'descriptor get: 60' xiaoming.score Out[74]: 'descriptor get: 80' xiaoming.score = -90 ValueError: Score can't be negative number!
class MathScore():
def __init__(self, std_id, score):
if std_id < 0:
raise ValueError("Can't be negative number!")
self.__std_id = std_id
if score < 0:
raise ValueError("Can't be negative number!")
self.__score = score
def check(self):
if self.__score >= 60:
return 'pass'
else:
return 'failed'
@property
def score(self):
return self.__score
@score.setter
def score(self, value):
if value < 0:
raise ValueError("Can't be negative number!")
self.__score = value
@property
def std_id(self):
return self.__std_id
@std_id.setter
def std_id(self, idnum):
if idnum < 0:
raise ValueError("Can't be negative nmuber!")
self.__std_id = idnum
class NonNegative():
def __init__(self):
self.dic = dict()
def __get__(self, ist, cls):
print('Description get', ist)
return self.dic[ist]
def __set__(self, ist, value):
print('Description set', ist, value)
if value < 0:
raise ValueError("Can't be negative number!")
self.dic[ist] = value
class MathScore():
score = NonNegative()
std_id = NonNegative()
def __init__(self, std_id, score):
#这里并未创建实例属性 std_id 和 score, 而是调用 MathScore.std_id 和 MathScore.score
self.std_id = std_id
self.score = score
def check(self):
if self.score >= 60:
return 'pass'
else:
return 'failed'
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有