【问题标题】:Django app.py removes underscore in ConfigDjango app.py 删除 Config 中的下划线
【发布时间】:2018-01-08 11:56:30
【问题描述】:

PEP 8 说“模块应该有简短的全小写名称。如果可以提高可读性,可以在模块名称中使用下划线。Python 包也应该有简短的全小写名称,尽管不鼓励使用下划线。 "

我正在开展一项教育计划,最终可能会有很多课程。有时一个应用程序可以提供数千节课程(即拼写),但仍然可能有很多应用程序。为了便于阅读,小写名称中的下划线似乎很重要。

当我在应用程序名称中使用下划线时,例如 顺时针计数器,“python manage.py startapp 顺时针计数器”在构建 apps.py 中的类名时会删除下划线。类名变为 “类ClockwiseCounterConfig(AppConfig): 名称 = '顺时针计数器'"

这让我很困惑,直到我学会了通过删除下划线将 apps.py 类名复制到 settings.py 的 INSTALLED_APPS 部分。

我的问题是:

  1. 为什么 PEP 8 不鼓励使用下划线?是否真的有充分的理由,或者只是过去某个时候的个人喜好。

  2. 现在或将来我是否可能会在应用名称中使用下划线来提高可读性?

【问题讨论】:

  • 不清楚你在问什么。 clockwise_counter 是应用名称,但 ClockwiseCounterConfig 是类名称,因此遵循 PEP8 对类的建议。
  • 大多数网站只有几页到几百页。在网络上提供的教育程序可能有一万页甚至十万页。使用下划线为应用名称赋予与主题分类法合理的相似性似乎是有道理的。否则,应用名称将与主题分类无关。
  • 我不知道这与任何事情有什么关系。应用程序配置是类,它们是从模块名称以可预测和可重复的方式构造的。无论如何,页面数不应该与应用程序中的类数相关;如果你有十万个班级,你肯定有一些非常非常错误的事情。

标签: python django naming-conventions


【解决方案1】:

这是标准行为,而不是错误。模块或包名称中的下划线是合法的,因此您可以在这些名称中加上下划线。

另一方面,拥有Clockwise_Counter_Config 类有点丑陋(但它有效)。

啊,INSTALLED_APPS 设置是应用程序点名称的列表(或序列),而不是类名。

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2017-03-23
    • 2019-11-25
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多