13

是否可以使用变量访问 Python 对象上的属性/方法以及如何访问?

例子:

handler.request.GET.add()

我想通过预先将方法捕获到变量中然后以点表示法使用它来替换“GET”部分。

method = handler.method
handler.request.{method}.add()

我只是看不到在哪里/如何做到这一点。

4

3 回答 3

19

您正在寻找getattr

getattr(handler.request, 'GET')是一样的handler.request.GET

所以你可以做

method = "GET"
getattr(handler.request, method).add()
于 2013-02-03T22:33:06.030 回答
6

使用getattr()函数访问动态属性:

method = 'GET'
getattr(handler.request, method).add()

这将与handler.request.GET.add().

于 2013-02-03T22:32:33.040 回答
2

你可以做类似getattr

getattr(handler.request, "GET").add()

然后就做

method = "GET" # or "POST"
getattr(handler.request, method).add()
于 2013-02-03T22:32:57.480 回答