是否可以在python中调用具有可变函数的模块?

时间:2014-02-27 16:48:34

标签: python function variables module

这里有更多的上下文,在python中,你怎么能创建这个效果?

import random
variable = 'randint'
random.[variable](1,3)

有没有办法为这种效果编写代码?我没有在{if}块的负载之外找到任何东西。

谢谢!

2 个答案:

答案 0 :(得分:4)

您可以使用内置的getattr

>>> import random
>>> variable = 'randint'
>>> getattr(random, variable)(1, 3)
3
>>>

来自docs

  

getattr(object,name [,default])

     

返回object的named属性的值。 name必须是一个字符串。如果   string是对象属性之一的名称,   结果是该属性的值。例如,getattr(x,   'foobar')相当于x.foobar。如果命名属性没有   如果提供,则返回default,否则返回AttributeError   提高。

答案 1 :(得分:0)

只是使用getattr的替代方法:

In [141]: random.__dict__['randint'](1,3)
Out[141]: 3