使用变量以点表示法指定对象属性

时间:2013-02-03 22:30:15

标签: python

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

示例:

handler.request.GET.add()

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

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

我只是看不到在哪里/怎么做。

3 个答案:

答案 0 :(得分:11)

您正在寻找getattr

getattr(handler.request, 'GET')handler.request.GET相同。

所以你可以做到

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

答案 1 :(得分:5)

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

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

handler.request.GET.add()完全相同。

答案 2 :(得分:2)

您可以执行getattr

之类的操作
getattr(handler.request, "GET").add()

然后就这样做

method = "GET" # or "POST"
getattr(handler.request, method).add()