Python,在 getattr 中使用两个变量?

Ric*_*ick 0 python function getattr

我正在尝试执行以下操作:

import sys; sys.path.append('/var/www/python/includes')
import functionname

x = 'testarg'
fn = "functionname"
func = getattr(fn, fn)
func (x)
Run Code Online (Sandbox Code Playgroud)

但出现错误:

"TypeError: getattr(): attribute name must be string"
Run Code Online (Sandbox Code Playgroud)

我在调用 getattr 之前尝试过此操作,但它仍然不起作用:

str(fn)
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会发生这种情况,任何建议都会受到赞赏

Joe*_*ton 5

听起来你可能想要locals()而不是getattr()......

x = 'testarg'
fn = "functionname"
func = locals()[fn]
func (x)
Run Code Online (Sandbox Code Playgroud)

当您有一个对象并且想要获取该对象的属性而不是本地命名空间中的变量时,您应该使用 getattr。