''' AOP之类装饰器 ''' #标准 def standard(class_): class_.standard=class_ print(class_.name) return class_ #非标准 def nonstandard(based_on): def concrete_decorator(class_): class_.standard=based_on print(class_.name) return class_ return concrete_decorator class Unit: factor=1.0 @classmethod def value(class_,value): if value is None: return None return value/class_.factor @classmethod def convert(class_,value): if value is None:return None return value*class_.factor @standard class INCH(Unit): """inch""" name="in" @nonstandard(INCH) class FOOT(Unit): """foot""" name='ft' factor=1/12