Discuss / Python / 比答案还重要的发现

比答案还重要的发现

Topic source

答案拿走不谢: class Student(object): def init(self, name, score): self.name = name self.score = score def get_grade(self): if self.score<0 or self.score>100: raise ValueError('Bad score') if 80>self.score >= 60: return 'B' if self.score >= 80: return 'A' return 'C'

更重要的发现: class Dict(dict): def init(self, kw): super().init(kw)

def __getattr__(self, key):
    try:
        return self[key]
    except KeyError:
        raise AttributeError(r"'Dict' object has no atrribute '%s'" % key)

def __setattr__(self, key, value):
    print(repr(key), repr(value))
    self[key] = value

setattr这个函数会把key指向字符串'key'猴赛雷


  • 1

Reply