嗨,我想给f('append','more','arguments',a=1,b=2)打电话。
但append是pyquery模块的一个方法(函数)
所以arg[0]就是我的方法
我想做
e.arg[0]('<div id="cool"></div>') run like e.append('<div id="cool"></div>')--所以我希望将"append“作为参数传递
import pyquery
d = pq('<div id="guido"></div>')
d.append('<div id="cool"></div>')
str(d)
def f (*arg,**kargs):
e = pq('<div id="guido"></div>')
e.arg[0]('<div id="cool"></div>') # <== HERE
return str(e)
f('append','more','arguments',a=1,b=2)因此f('append','more','arguments',a=1,b=2)必须返回
'<div id="guido"><div id="cool"/></div>'发布于 2011-02-19 01:17:23
如果可以避免的话,我建议不要在字符串中传递方法名称(而是传递一个对方法本身的引用),但是如果不能这样做,那么您需要的是getattr(),这是一个通过字符串中包含的名称获取对象属性的函数。这将使您获得对所需方法的引用,然后您可以像往常一样调用它。
def f (*arg, **kargs):
e = pq('<div id="guido"></div>')
getattr(e, arg[0])('<div id="cool"></div>')
return str(e)发布于 2011-02-19 01:15:33
将d.append作为第一个参数传递。函数是第一类对象!
https://stackoverflow.com/questions/5044124
复制相似问题