Python'da dinamik olarak nasıl işlev oluşturabilirim?Python: dinamik olarak çalışma zamanında işlev oluştur
Burada birkaç cevap gördüm, ancak en genel durumu açıklayan bir tane bulamadım.
düşünün:
def a(x):
return x + 1
nasıl on-the-fly gibi bir fonksiyonu oluşturmak için?
compile('...', 'name', 'exec')
mu var? Ama sonra ne var? Bir kukla işlev oluşturmak ve kod nesnesini derleme adımından sonra değiştirmek mi istiyorsunuz?
Veya types.FunctionType
kullanmalı mıyım? Nasıl?
Herşeyi özelleştirmek istiyorum: argüman sayısını içeriklerini, fonksiyon gövdesinin, sonuç, kod ...
olası yinelenen [Python mümkün Gerçek dinamik ve anonim işlevlerin?] (Http://stackoverflow.com/questions/10303248/true-dynamic-and-anonymous-functions-possible-in-python) –
Ben bir yinelenen sanmıyorum: 'dynf = FunctionType (derleme ('def f (x): x + 3', 'dyn.py', 'exec'), globals())' ve 'print dynf (1) 'TypeError: 'ile sonlanır:() hiçbir argüman almaz (1 verilen)'' –
Sadece cevabın yanlış olabileceğinden, bunun yinelenen bir soru olmadığı anlamına gelmez. –