用变量指定对象属性的点notation

18 投票
3 回答
15025 浏览
提问于 2025-04-17 14:38

在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()

撰写回答