【问题标题】:Is giving an argument the same name as the kwarg parameter bad practice in Python?在 Python 中给出一个与 kwarg 参数同名的参数是不好的做法吗?
【发布时间】:2021-09-24 06:33:24
【问题描述】:

我已经用 Python 3 编写了这段代码;

dotenv_path = r"./../.env"
load_dotenv(dotenv_path=dotenv_path)

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

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

【问题讨论】:

    标签: python keyword-argument readability


    【解决方案1】:

    这不太可能被认为是不好的做法,因为它在主要的 python 包中经常使用;参见例如一个随机的 pandas 示例here(需要一段时间才能跳到正确的行)。

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

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

    【讨论】:

      猜你喜欢
      • 2019-04-11
      • 2021-09-19
      • 2017-05-06
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多