python - 在 Python 中给参数命名是否与 kwarg 参数的坏做法相同?

标签 python keyword-argument readability

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

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

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

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

最佳答案

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

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

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

关于python - 在 Python 中给参数命名是否与 kwarg 参数的坏做法相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68392313/

相关文章:

python - 遍历Odoo计划操作中的所有记录

python - Airflow BashOperator 收集返回码

传递 kwargs 时的 Python 多处理问题

python - 使用可变数量的键的字典,如何获得其值的笛卡尔积?

python - 为什么使用 packed *args/**kwargs 而不是传递 list/dict?

python - 对于这个重复的片段代码模式更好的 pythonic 习语

python - 替换字符串中的特定单词

python - 无法访问Locust WebInterface "ERR_CONNECTION_REFUSED"

c# - Flesch-Kincaid 可读性测试

c++ - 直接访问成员变量还是作为参数传递?