摘要: 将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则 # 例一:BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性,更便于理解) # # 成人的BMI数值: # 过轻:低于18.5 # 正常:18.5-23.9 # 过重:24-27 # 肥胖... 阅读全文
posted @ 2018-09-03 23:23 zhang.ning 阅读(93) 评论(0) 推荐(0) 编辑
摘要: # 类中定义的函数有两大类(3小种)用途,一类是绑定方法,另外一类是非绑定方法 # 1. 绑定方法: # 特点:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入 # 1.1 绑定给对象的:类中定义的函数默认就是绑定对象的 # 1.2 绑定给类的:在类中定义的函数上加一个装饰器classmethod # 2. 非绑定方法 # 特点: 既不与类绑定也不与对象绑定,意味着对象或者... 阅读全文
posted @ 2018-09-03 23:03 zhang.ning 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 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 类的派生... 阅读全文
posted @ 2018-09-03 22:08 zhang.ning 阅读(245) 评论(0) 推荐(0) 编辑
摘要: # 反射:通过字符串来操作对象属性,类也是一样。 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')... 阅读全文
posted @ 2018-09-03 22:02 zhang.ning 阅读(134) 评论(0) 推荐(0) 编辑