python-对象实例只有数据属性
我们通常使用 __init__ 来初始化时,会为其添加数据属性,例如 self.name = xxx ,但是却几乎不会为实例添加方法,也就是说实例中的方法,都是在类中找的。这样做其实有好处,因为方法一般是通用的,如果每一个实例都要保存一套方法的话,实在太浪费资源,而把这些方法统一保存到类中,用到的时候来类里找,就节约了许多。
当然,我们也可以任性地为某个实例添加方法,python 支持动态添加属性。
class Test: pass def fangfa(): print '我是某个实例的方法' a = Test() b = Test() a.abc = fangfa # 特意添加一个方法 a.abc() b.abc() # b 没有这个方法
同样的,我们也可以为类动态添加一个方法:
class Test: pass def fangfa(self): # self 代表是实例方法,只能由实例调用 print '我是方法' Test.abc = fangfa a = Test() a.abc()