1

(Это в Python 3 BTW)Как вы определяете функцию в процессе создания динамического типа Python

Хорошо, так что мы используем type() как конструктор класса:

X = type('X',(), {})

Что я пытаясь найти, как бы type() принять функцию в качестве аргумента и позволить ей быть вызываемым?

Я ищу пример того, как это можно осуществить. Что-то вроде линий:

>>> X = type('X',(), {'name':'World', 'greet':print("Hello {0}!".format(name))} 
>>> X.greet() 
Hello World! 
+0

Что это нужно делать с динамическим программированием? –

+0

@ juanpa.arrivillaga мой общий проект связан с динамическим программированием. Я выбрал теги, вращающиеся вокруг основной цели, стоящей за вопросом, поэтому я бы привлек тех, кто мог ответить с этим мышлением. – theDr34mer

ответ

1

Вам необходимо передать функцию. В вашем коде вы вызываете функцию и передаете результат.

Try:

def print_hello(self): 
    print("Hello {0}!".format(self.name)) 

X = type('X',(), {'name':'World', 'greet': print_hello}) 
+0

О, поэтому функция должна быть определена заранее? Это помогает с этой частью, теперь я должен найти способ динамически определять функцию. скорее всего с 'eval()' я уверен – theDr34mer

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