您好我想要致电f('append','more','arguments',a=1,b=2)
但是append是pyquery
module
所以arg[0]
是我的方法
我想要制作
e.arg[0]('<div id="cool"></div>') run like e.append('<div id="cool"></div>')
- 所以我希望传递“追加”作为参数
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>'
答案 0 :(得分:3)
我建议不要在字符串中传递方法名称,如果你可以避免它(改为传递对方法本身的引用),但是如果你不能,你想要的是getattr()
,一个得到的函数对象的属性,包含在字符串中的名称。这将让您获得所需方法的参考,然后您可以照常调用它。
def f (*arg, **kargs):
e = pq('<div id="guido"></div>')
getattr(e, arg[0])('<div id="cool"></div>')
return str(e)
答案 1 :(得分:0)
将d.append作为第一个参数传递。函数是第一类对象!