Wil*_*amp 0 python coding-style function
哪个更pythonic?
一个
def my_function(arg, p=0):
while arg:
# do something
value = arg.pop()
# save value with a name which uses p for indexing
p+=1
Run Code Online (Sandbox Code Playgroud)
或B.
def my_function(arg):
p = 0
while arg:
# do something
value = arg.pop()
# save value with a name which uses p for indexing
p+=1
Run Code Online (Sandbox Code Playgroud)
我认为它的一部分很愚蠢,包括p作为函数的参数,因为有人将它设置为一个奇怪的值.但与此同时,我不喜欢让p = 0混乱一个已经非常复杂的功能.
不要让本地人混淆功能参数.如果它不是调用者应该使用的参数,请不要将其添加到函数签名中.
换句话说,你不希望任何人使用help(my_function)并对可能的内容感到惊讶p.
当然,这不是一个严格的规则; 使用本地人可以更快地完成一些关键路径功能,所以有时你会看到类似的东西:
some_global = expensive_function()
def foo(bar, baz, _some_local=some_global):
# code using _some_local instead of some_global
Run Code Online (Sandbox Code Playgroud)
使用更快的本地名称查找.然后_在参数的开头告诉您该名称实际上是您不应该依赖的内部实现细节.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |