Я динамически генерирую функцию и назначая ее классу. Это простой/минимальный пример того, что я пытаюсь достичь:Как создать связанные методы с помощью type()?
def echo(obj):
print obj.hello
class Foo(object):
hello = "Hello World"
spam = type("Spam", (Foo,), {"echo":echo})
spam.echo()
Результатов в этой ошибке
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unbound method echo() must be called with Spam instance
as first argument (got nothing instead)
Я знаю, что если я использовал @staticmethod
декоратора, что я могу передать spam
в качестве параметра эхо, но это невозможно для меня в моем случае использования.
Как я могу получить функцию echo
для связи с Spam
и получить доступ self
? Это вообще возможно?