import functools, unittest
def check_score(func): @functools.wraps(func) def wrapper(args, *kwargs):
# print(args[0].score) if not isinstance(args[0].get_score(), int): raise TypeError('Except an integer') if not 0 <= args[0].get_score() <= 100: raise ValueError('Except 0 <= score <= 100') return func(*args, **kwargs) # return 'Check over' return wrapper
class Student(object): def init(self, name, score): self.name = name self.score = score
def get_score(self): return self.__score @check_score def get_grade(self): if self.__score < 60: return 'C' elif self.__score < 80: return 'B' else: return 'A'
Sign in to make a reply
用户9706266415
import functools, unittest
def check_score(func): @functools.wraps(func) def wrapper(args, *kwargs):
class Student(object): def init(self, name, score): self.name = name self.score = score