用变量指定对象属性的点notation
在Python中,能不能用一个变量来访问对象的属性或方法?如果可以的话,怎么做呢?
举个例子:
handler.request.GET.add()
我想把'GET'这一部分替换掉,先把这个方法存到一个变量里,然后再用点号的方式来调用它。
method = handler.method
handler.request.{method}.add()
我就是不知道该怎么做。
3 个回答
2
你可以使用类似于 getattr 的方法。
getattr(handler.request, "GET").add()
然后只需要这样做:
method = "GET" # or "POST"
getattr(handler.request, method).add()
6
使用 getattr()
函数 可以访问动态属性:
method = 'GET'
getattr(handler.request, method).add()
这和 handler.request.GET.add()
完全是一样的效果。
27
你在寻找 getattr
这个东西:
getattr(handler.request, 'GET')
和 handler.request.GET
是一样的。
所以你可以这样做:
method = "GET"
getattr(handler.request, method).add()