通过Python属性传递字符串变量

时间:2016-01-13 08:47:44

标签: python

如果我有python ......

r = requests.get('https://api.github.com/user', auth=('user', 'pass'))

如何让它与......一起使用?

myvar = 'get'
r = requests.myvar('https://api.github.com/user', auth=('user', 'pass'))

即。将字符串解析为命令?

4 个答案:

答案 0 :(得分:4)

使用getattr

myvar = 'get'
getattr(requests, myvar)('https://api.github.com/user', auth=('user', 'pass'))

答案 1 :(得分:0)

getattr()可以完美地工作,但这也意味着用户可以指定他们选择的任何方法,可能是您不想公开的方法。另一种方法是:

{
    "get": requests.get,
    "post": requests.post, # maybe
    # etc
}[myvar]('https://api.github.com/user', auth=('user', 'pass'))

答案 2 :(得分:0)

你可以使用getattr, https://docs.python.org/2/library/functions.html#getattr

r = getattr(requests, myvar)('https://api.github.com/user', auth=('user', 'pass'))

答案 3 :(得分:0)

好了我的头顶

myvar = 'get'
getattr(requests, myvar)('https://api.github.com/user', auth=('user', 'pass'))