2013-09-16 3 views
1

У меня есть класс, который я хочу вызвать его методы, используя только строки. Как мне это сделать?Получение метода класса со строкой

class MyClass: 
    def do_something(): 
     print 'MyClass did something' 

MyClass.get_method('do_something')() 
+0

Вы также можете просто удерживать объект метода в переменной, на случай, если ваша жизнь станет проще. – Marcin

ответ

1
class MyClass: 
    def do_something(self): 
     print 'MyClass did something' 

getattr(MyClass(),'do_something')() 
1

Вы можете сделать:

class MyClass: 

    @staticmethod 
    def do_something(): 
     print 'MyClass did something' 

И позвони:

getattr(MyClass, 'do_something')() 

Обратите внимание на добавление @staticmethod к методу, чтобы гарантировать ее можно назвать без экземпляра класса.

Смежные вопросы