在 Python 中给参数赋予与 kwarg 参数同名的不良做法吗?

Is giving an argument the same name as the kwarg parameter bad practice in Python?

我在Python3;

中写了这段代码
dotenv_path = r"./../.env"
load_dotenv(dotenv_path=dotenv_path)

请注意,我如何将包含 .env 文件路径的变量命名为与 load_dotenv() 所采用的参数名称相同的名称。这导致 ...(dotenv_path=dotenv_path)

这被认为是不好的做法吗?如果是这样,可以做些什么来更清楚地区分变量(除了简单地选择不同的名称),不仅在这个特定的上下文中,而且在更广泛的意义上,而不影响降低代码可读性and/or 自我文档?

考虑到它在主要 python 软件包中的使用频率更高,因此不太可能被视为不良做法;参见例如随机 pandas 示例 here(需要一段时间才能跳到正确的行)。

至于可读性,我认为只要您指的是同一事物,在两个范围内使用相同的名称是有益的。如果合适,您仍然可以使用更具体的名称来引用函数之外更具体的概念,例如生产环境文件(例如dotenv_prod_path = r"./../.env.prod"; load_dotenv(dotenv_path=dotenv_prod_path))。

如果您担心可读性降低,因为可能不清楚名称属于哪个范围,我建议 keep methods/functions short 不要使用全局变量和非局部变量。