在
Python任务中,我必须做以下两个函数:
move(board, move)
undomove(board, move)
有一个与函数同名的参数对我来说似乎是一个坏习惯.我已经联系了教授来改变它,但出于好奇,是否有可能从undomove内部调用move函数,或者在移动中使用递归?在这些函数中,move指的是参数.
(Python 3,如果重要的话)
最佳答案 你可以得到一个移动(功能),但它需要一些额外的体操.
def move(move):
print(move,"inside move")
def undomove(move):
print (move,"inside undomove")
this_mod =__import__(__name__)
this_mod.move(move)
if __name__ == '__main__':
move(1)
undomove(2)
但一般来说,我肯定会避免命名一个局部变量,其名称与我在该函数中需要的函数相同.
就风格而言,创建一个函数def move(move):…绝对有点奇怪,它会让随意的读者认为你正在尝试编写一个递归函数,所以我绝对会避免这种情况.当移动已经在模块范围内定义为函数时写入undomove(move)有点不那么奇怪了,但是它仍然可能会在快速浏览时引起混淆(它是一个局部变量吗?它是函数吗?)所以我可能会也避免那个.