2017-08-01 76 views
0

PEP 8表示“模块应该有短的全小写名称,如果提高了可读性,可以在模块名称中使用下划线,Python包也应该有短的全小写名称,尽管使用下划线是令人沮丧的。“Django app.py删除配置中的下划线

我正在制定一个教育计划,最终可以有很多教训。有时一个应用程序可能会提供数千次课程(即拼写),但仍然可能有很多应用程序。为了便于阅读,用小写字母下划线似乎很重要。

当我在应用程序名称中使用下划线(例如clockwise_counter)时,“python manage.py startapp clockwise_counter”将删除在构建apps.py中的类名称时的下划线。类名变成 “类ClockwiseCounterConfig(AppConfig的): 名=‘clockwise_counter’”

这引起了我很多的困惑,直到我学会了apps.py类名复制到受settings.py的INSTALLED_APPS部分删除下划线。

我的问题是:

  1. 为什么在PEP 8气馁下划线?是真的有一个很好的理由,还是只是过去某个时候的个人喜好?

  2. 我现在或将来在应用程序名称中使用下划线是否存在可读性问题?

+2

目前还不清楚你在问什么。 'clockwise_counter'是应用程序名称,但'ClockwiseCounterConfig'是一个类名,因此遵循PEP8关于类的建议。 –

+0

大多数网站都有几页到几百页。在网上发布的教育计划可能有一万页甚至十万页。强调为应用程序名称与主题分类学合理相似似乎是有道理的。否则,应用程序名称将与主题分类无关。 – JimFuqua

+0

我不知道这与什么有关。应用程序配置是类,它们是以可预测和可重复的方式从模块名称构建的。在任何情况下,页面数量都不应与您应用中的课程数量相关;如果你有十万门课,你肯定有一些非常非常错误的东西。 –

回答

0

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

另一方面,有一个Clockwise_Counter_Config类是某种丑陋的(但它的工作原理)。

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