使函数获取对象的变量名称

时间:2018-05-02 21:47:19

标签: python

如果我有以下代码:

class foo:
    def __init__(self):
        self.w = 5
        self.z = 10

def sum(obj,x,y):
    return obj.x+obj.y

f = foo()
print sum(foo,'x','y')

我如何创建一个接收两个未知变量名的函数并返回这些变量变量的总和?

在这种情况下,示例应打印15。 编辑: 最后一行的拼写应该说打印总和(foo,'w','z')

1 个答案:

答案 0 :(得分:-2)

所有(我认为?)python对象都有一个内置的__getattribute__方法。像这样使用它:

def sum(obj,x,y):
    return obj.__getattribute__(x)+obj.__getattribute__(y)

该方法接受一个字符串,并将其“解包”为变量名。