这里有更多的上下文,在python中,你怎么能创建这个效果?
import random
variable = 'randint'
random.[variable](1,3)
有没有办法为这种效果编写代码?我没有在{if}块的负载之外找到任何东西。
谢谢!
答案 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