我如何通过一个名称与方法相同的变量访问类方法?

时间:2016-09-01 03:28:44

标签: python

有时候我不知道用户会操作什么。

class User(object):
    ...

    def get_name(self):
        return self.name

    def get_age(self):
        return self.age

operation = "http://localhost:8080/user/get_name".split('/')[-1]
user = User(...)

如您所见,operation是一个变量名,与class属性相同。

我试试:

eval('user.{}'.format(operation))

它可以运行。但它看起来非常合适

现在我想通过像user.operation

这样的方式处理它

我是如何实现的?

1 个答案:

答案 0 :(得分:3)

您可以使用getattr()。像这样申请:

getattr(user, operation)()

现在,User实例,user将从字符串中调用operation

在这种情况下,

getattr将获取对象的属性user。然后它会user.operation,然后执行()

IDEOne

上试用