如果我有蟒蛇...传递字符串变量通过对于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'))
即通过命令解析字符串?
如果我有蟒蛇...传递字符串变量通过对于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'))
即通过命令解析字符串?
使用getattr
:
myvar = 'get'
getattr(requests, myvar)('https://api.github.com/user', auth=('user', 'pass'))
getattr()
将很好地工作,但它也意味着,用户可以指定他们选择的任何方法,你不希望暴露可能的。另一种方法是:
{
"get": requests.get,
"post": requests.post, # maybe
# etc
}[myvar]('https://api.github.com/user', auth=('user', 'pass'))
您可以使用GETATTR, https://docs.python.org/2/library/functions.html#getattr
r = getattr(requests, myvar)('https://api.github.com/user', auth=('user', 'pass'))
OK了我的头
myvar = 'get'
getattr(requests, myvar)('https://api.github.com/user', auth=('user', 'pass'))
啊谢谢属性,而不是运营商的顶部!当我被允许时,我会更新问题并标记为正确。 –
'r = self.requests.get('https://api.github.com/user',auth =('user','pass'))'get'getattr(self,requests,myvar)(' https://api.github.com/user',auth =('user','pass'))'? –
@square_eyes只需用'getattr(self.requests,myvar)'替换getattr(self,requests,myvar)',其余部分是相同的。 – eumiro