摘要:
将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则 # 例一:BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性,更便于理解) # # 成人的BMI数值: # 过轻:低于18.5 # 正常:18.5-23.9 # 过重:24-27 # 肥胖... 阅读全文
摘要:
# 类中定义的函数有两大类(3小种)用途,一类是绑定方法,另外一类是非绑定方法 # 1. 绑定方法: # 特点:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入 # 1.1 绑定给对象的:类中定义的函数默认就是绑定对象的 # 1.2 绑定给类的:在类中定义的函数上加一个装饰器classmethod # 2. 非绑定方法 # 特点: 既不与类绑定也不与对象绑定,意味着对象或者... 阅读全文
摘要:
class Foo: pass class Bar(Foo): pass obj = Bar() isinstance(obj,cls)检查是否obj是否是类 cls 的对象 print(isinstance(obj, Bar)) # True ,判断是obj对象是否属于Bar这个类 issubclass(sub, super)检查sub类是否是 super 类的派生... 阅读全文
摘要:
# 反射:通过字符串来操作对象属性,类也是一样。 class Foo: def __init__(self, name): self.name = name def eat(self): print('%s is eating' % self.name) obj = Foo('egon') print(hasattr(obj, 'eat')... 阅读全文