名称
dir(aClass)
我们得到这些属性的名称后,可以用上面得到class 的方法来获得这个对象里的所有属性 举例说明方法改变: (1)方法添加 class Fruit(object): pass
def add(self): print \
if __name__ == \ Fruit.grow = add fruit = Fruit() fruit.grow() (2)方法更新 class Fruit(object): pass
def update(self): print \
if __name__ == \ Fruit.grow = update fruit = Fruit() fruit.grow() (4)、动态运行方法
动态的运行方法,我们也非常的方便,因为python是脚本语言。 apply(objFunc,arrArgs)
代码中objFunc是用getAttr从实例化后的对象中取得到function,而arrArgs是我们的参数,和javascript一样,他是数组一样的对象。 p = aclass(\
相当于直接使用p = sites.sitespybuild.sitespybuild(\五.、函数的动态调用
关键点在于python中一切都是对象 def method1(self,A=None): …print \
def method2(self,B=None): …print \
def method3(self,C=None): …print \ controllers = {
'keyword1':method1, 'keyword2':method2, 'keyword3':method3 }
def callfunc(self,funcname=None,params=None): …func = self.controllers.get(funcname, None) …return func(self,params)
参数动态传入,关键点在于使用字典型对象。
如上例,如果method1中需要传入复杂对象A,method2中需要传入复杂对象A,B,
一个办法可以搞定,都传入字典型对象,把A,B放到字典型参数params中进行传递即可。 参考文献:
《Python源码剖析》 陈儒 电子工业出版社 《Python学习手册》 Mark Lutz 机械工业出版社