首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将参数作为模块的方法传递

如何将参数作为模块的方法传递
EN

Stack Overflow用户
提问于 2011-02-19 00:53:21
回答 2查看 324关注 0票数 1

嗨,我想给f('append','more','arguments',a=1,b=2)打电话。

但append是pyquery模块的一个方法(函数)

所以arg[0]就是我的方法

我想做

代码语言:javascript
运行
复制
    e.arg[0]('<div id="cool"></div>') run like e.append('<div id="cool"></div>')

--所以我希望将"append“作为参数传递

代码语言:javascript
运行
复制
    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)必须返回

代码语言:javascript
运行
复制
    '<div id="guido"><div id="cool"/></div>'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-19 01:17:23

如果可以避免的话,我建议不要在字符串中传递方法名称(而是传递一个对方法本身的引用),但是如果不能这样做,那么您需要的是getattr(),这是一个通过字符串中包含的名称获取对象属性的函数。这将使您获得对所需方法的引用,然后您可以像往常一样调用它。

代码语言:javascript
运行
复制
def f (*arg, **kargs):
    e = pq('<div id="guido"></div>')
    getattr(e, arg[0])('<div id="cool"></div>')
    return str(e)
票数 4
EN

Stack Overflow用户

发布于 2011-02-19 01:15:33

将d.append作为第一个参数传递。函数是第一类对象!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5044124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档