对于具有密切相关的形参的函数,例如
def add_two_numbers(n1, n2):
return n1 + n2
def multiply_two_numbers(n1, n2):
return n1 * n2
在两个函数中给参数取相同的名称是否是一个好主意呢?
另一种选择是在其中一个函数中重命名参数。例如:
def add_two_numbers(num1, num2):
return num1 + num2
在两个函数中保持参数相同看起来更一致,因为它们各自接受的参数是类似的,但这样做是否更加令人困惑?
同样,在下面的示例中哪种方式更好呢?
def count(steps1, steps2):
a = 0
b = 0
for i in range(steps1):
a += 1
for j in range(steps2):
b += 1
return a, b
def do_a_count(steps1, steps2):
print "Counting first and second steps..."
print count(steps1, steps2)
否则,更改第二个函数中的参数会得到:
def do_a_count(s1, s2):
print "Counting first and second steps..."
print count(s1, s2)
我有点不确定哪一种方法最好。保持相同的参数名称使得两个函数之间的关系更加清晰,而第二种方法则意味着在两个函数之间没有混淆参数的可能性。
我进行了一些搜索(包括浏览PEP-8),但没有找到明确的答案。 (我在SO上找到的类似问题包括:Python函数中可选参数的命名惯例和在Python中,避免在__init__参数和实例变量中使用相同名称的最佳方法是什么?)