是否有命名与全局变量同名的函数参数的最佳实践? [已关闭]

问题描述 投票:0回答:1

我经常想知道以下情况是否有最佳实践。

比方说,我想访问 Python 脚本中的本地文件,因此创建一个指向数据集的全局变量 path

现在我正在编写一个函数,它应该有一个 path 变量作为参数。 我知道函数中的局部变量会掩盖全局变量,但我只是觉得写起来不太令人满意。

我想我记得看到人们只是在局部变量之前写下划线,就像

path=path

那样。

有这样的事吗?
有没有最佳实践?
如何命名与全局参数同名的函数参数?

最佳 乔

python function arguments
1个回答
0
投票
_path=path

vars

global
 和/或将它们打包到字典中(如果有任何重要的计数)
SCREAMING_SNAKE_CASE

但是,我也认为以这种方式设置默认参数是不好的做法,因为它们将在运行时评估一次,而外部功能可能希望将它们设置为其他东西.. 相反(特别是对于类),设置默认为 
PATH_DEFAULT = pathlib.Path("/my_path") CONFIG = { "path": pathlib.Path("/my_path"), }

,然后在运行时查找它

None
if argname is None: ...

设置默认参数时请注意这种情况

class Foo: path_default = pathlib.Path("/my_path") def __init__(self, path=None, *args): if path is None: path = self.path_default

© www.soinside.com 2019 - 2024. All rights reserved.