В питоне я могу сделать:питон EXEC, добавить STATICMETHOD к классу
exec(code_string, globals(), some_object.__dict__)
добавить метод к объекту. Можно ли добавить статический метод в класс каким-то подобным образом? Как:
exec(code_string, globals(), ClassName.__dict__)
Так что я мог бы статический вызывать метод:
ClassName.some_static_method()
То, что я пытаюсь сделать, это добавить новые staticmethods во время выполнения данного некоторых питона код, определяющих метод. то есть, если бы я был дан:
code_string = '''
@staticmethod
def test():
return 'blah'
'''
как я могу создать и создать экземпляр этого в класс, так что я мог бы назвать это?
Надеюсь, я был достаточно ясен, спасибо!
РЕДАКТИРОВАТЬ: рабочий пример добавления функции к объекту:
class TestObject(object):
pass
code_string = '''
def test():
return 'blah'
'''
t = TestObject()
exec(code_string, globals(), t.__dict__)
Первое выражение, после «В Python я могу сделать : "дает объект' TypeError: 'dictproxy' не поддерживает присвоение позиции' в любом случае – samstav
Я не могу получить форматирование в этом комментарии, поэтому я добавил его в сообщение. – lanthica