У меня есть класс, который я хочу вызвать его методы, используя только строки. Как мне это сделать?Получение метода класса со строкой
class MyClass:
def do_something():
print 'MyClass did something'
MyClass.get_method('do_something')()
У меня есть класс, который я хочу вызвать его методы, используя только строки. Как мне это сделать?Получение метода класса со строкой
class MyClass:
def do_something():
print 'MyClass did something'
MyClass.get_method('do_something')()
class MyClass:
def do_something(self):
print 'MyClass did something'
getattr(MyClass(),'do_something')()
Вы можете сделать:
class MyClass:
@staticmethod
def do_something():
print 'MyClass did something'
И позвони:
getattr(MyClass, 'do_something')()
Обратите внимание на добавление @staticmethod
к методу, чтобы гарантировать ее можно назвать без экземпляра класса.
Вы также можете просто удерживать объект метода в переменной, на случай, если ваша жизнь станет проще. – Marcin