Python中的参数命名约定
对于具有密切相关形式参数的函数,例如Python中的参数命名约定,python,coding-style,naming-conventions,Python,Coding Style,Naming Conventions,对于具有密切相关形式参数的函数,例如 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 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),但找不到确切的答案。(我发现类似的问题包括: 和
)除非你有充分的理由使用不同的名字,否则我会保持名字不变。。。请记住,即使是位置参数也可以通过关键字调用,例如:
>>> def foo(a,b):
... print a
... print b
...
>>> foo(b=2,a=1)
保持“关键字”相同,在这个罕见的,但合法的角情况下…
一般来说,你应该给你的函数的参数名称是有意义的,甚至不考虑任何与其他函数相关的当你选择那些名字时。两个函数的参数名称根本没有任何关系,即使函数做相似的事情
虽然。。。如果函数做了类似的事情,可能这表明您错过了重构?:) 这里的重要指导原则是,您应该给他们合理的名字,理想情况下是您在一年后返回代码时猜测参数的名字 每个程序员都有一套约定。有些人喜欢调用二进制函数的整数参数
n1
和n2
;其他如n
,m
;或lhs
,rhs
;或者别的什么。只要你选择一个并坚持它(只要它是合理的),任何人都可以阅读你的代码,并理解它,几秒钟后学习你的风格。如果你在各地使用不同的名字,他们将不得不做更多的猜测
正如mgilson所指出的,这允许您在需要时使用关键字参数。这也意味着当您看到弹出的(…n1…,…n2…)
时,具有自动完成功能的IDE更有用,因为您知道要传递两个整数。但主要是为了可读性
当然,如果有不同的含义,就给它们起不同的名字。在某些情况下,让
加两个数(augend,addend)
和乘两个数(factor,被乘数)
“而第二种方法意味着不可能混淆这两个函数中的参数。”你能举一个你担心的混淆类型的例子吗?在这些情况下,把它们混在一起的可能性不大(一般来说可能是这样的…),我想我更多的是考虑使用相同的名称作为变量的参数,这可能不是一个好主意。