class Person2(MappingMixin): def __init__(self, name, gender, age): self.name = name self.gender = gender self.age = age
class ReprMixin: def __repr__(self): s = self.__class__.__name__ + '(' for k, v in self.__dict__.items(): if not k.startswith('_'): s += '{}={}, '.format(k, v) s = s.rstrip(', ') + ')' # 将最后一个逗号和空格换成括号 return s
class Person(MappingMixin, ReprMixin): def __init__(self, name, gender, age): self.name = name self.gender = gender self.age = age
if __name__ == '__main__': p = Person("小陈", "男", 18) print(p.name) # "小陈" p = Person("小陈", "男", 18) print(p['name']) # "小陈" print(p['age']) # 18 p["gender"] = "男" print(p.gender) print(p)