Python 如何调用给定名称的类方法?

Python 如何调用给定名称的类方法?,python,class,variables,Python,Class,Variables,我试图通过从外部文件提取的变量名调用类方法,如下所示: structures.py: event_map = {'year' : 'get_year'} 类别代码: class MyClass(object): def __init__(self): self._analyze() def _analyze(self): event_method = event_map['year'] self.event_method() #

我试图通过从外部文件提取的变量名调用类方法,如下所示:

structures.py:

event_map = {'year' : 'get_year'}
类别代码:

class MyClass(object):
    def __init__(self):
        self._analyze()

    def _analyze(self):
        event_method = event_map['year']
        self.event_method() #<--------------this doesn't work

    def get_year(self):
        print('here')
类MyClass(对象):
定义初始化(自):
自我分析
def_分析(自我):
事件\方法=事件\映射['year']
self.event_method()#Python有一个
getattr(object,name)
函数来调用名为字符串的函数。您可以使用
getattr(self,event\u方法)(


您可以使用
getattr
按名称获取属性:

getattr(self, event_method)()

dict中的“get_year”是一个字符串,而不是一个方法。此外,您还设置了event\u方法,但随后使用self.event\u方法。此外,事件映射似乎是在您的类之外声明的,因此它不会知道
get\u year
是什么。您的示例很奇怪,也不清楚,但您可以在实际代码上尝试“event\u method(self)”,因为在本例中,代码事件映射方法是一个字符串,无法工作。我想“我从外部文件中提取”这到底是什么意思?
getattr(self, event_method)()