如何对同名函数进行再命名

生成的三个函数,名称完全相同,如何重命名为三个不同的函数名称:
def Get_Func():
funcs = []
for i in range(3):
def foo(x,y=i):
print(x+y)
funcs.append(foo)
return funcs

res = Get_Func()
for i in res:
print(i)
‘’’输出:
<function Get_Func..foo at 0x00000184794BE1F0>
<function Get_Func..foo at 0x00000184794BE160>
<function Get_Func..foo at 0x00000184794BE3A0>

#怎样让三个函数的名称不同呀?

最佳答案
def Get_Func():
    funcs = []
    for i in range(3):
        exec("def foo_{}(x,y={}):\n\tprint(x+y)".format(i,i))
        funcs.append(locals()["foo_{}".format(i)])
    return funcs

res = Get_Func()
for i in res:
    print(i)
1年前 评论
loongsea (楼主) 1年前
讨论数量: 2
def Get_Func():
    funcs = []
    for i in range(3):
        exec("def foo_{}(x,y={}):\n\tprint(x+y)".format(i,i))
        funcs.append(locals()["foo_{}".format(i)])
    return funcs

res = Get_Func()
for i in res:
    print(i)
1年前 评论
loongsea (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!