你看到this,它的例如,它告訴你如何使用types.FunctionType
例子:
import types
def create_function(name, args):
def y(): pass
y_code = types.CodeType(args,
y.func_code.co_nlocals,
y.func_code.co_stacksize,
y.func_code.co_flags,
y.func_code.co_code,
y.func_code.co_consts,
y.func_code.co_names,
y.func_code.co_varnames,
y.func_code.co_filename,
name,
y.func_code.co_firstlineno,
y.func_code.co_lnotab)
return types.FunctionType(y_code, y.func_globals, name)
myfunc = create_function('myfunc', 3)
print repr(myfunc)
print myfunc.func_name
print myfunc.func_code.co_argcount
myfunc(1,2,3,4)
# TypeError: myfunc() takes exactly 3 arguments (4 given)
的可能重複的[真動態和匿名可能在Python函數?](http://stackoverflow.com/questions/10303248/true-dynamic-and-anonymous-functions-possible-in-python) –
我不認爲它是重複的:'dynf = FunctionType(compile('def f(x):return x + 3','dyn.py','exec'),globals())''和print dynf 1)'TypeError':'()不帶參數(1給出)'' –
'因爲答案可能有錯並不意味着這不是一個重複的問題。 –