Есть ли риски в Python, если имя модуля и имя класса изнутри имеют одинаковые имена? - PullRequest
1 голос
/ 31 октября 2011

Я хотел бы знать, есть ли риск использовать одно и то же имя для модуля и класса внутри модуля.

Ответы [ 4 ]

5 голосов
/ 31 октября 2011

PEP 8 говорит о том, что модули должны иметь короткие, строчные имена, а имена классов используют соглашение CapWords.Таким образом, если у вас одно и то же имя для модуля и класса, вы не следуете этим правилам стиля.

Технически, никакого риска нет вообще.

1 голос
/ 31 октября 2011

Кроме того, что я могу запутать себя (или других разработчиков), я не вижу в этом ничего плохого. Фактически, есть несколько примеров этого в стандартных модулях Python, например random.random и pprint.pprint.

p.s. быть педантичным random и pprint являются функциями, а не классами, но риски будут эквивалентны, если будут какие-либо

0 голосов
/ 31 октября 2011

это зависит от того, как вы импортируете модуль. Если вы просто импортируете файл, а не класс, то я думаю, это будет что-то вроде

myModule.myModule.function ()

что не кажется таким желанным. если вы используете

из myModule import *

тогда вы бы использовали как

myModule.function ()

0 голосов
/ 31 октября 2011

Это не проблема. Пример из стандартной библиотеки lib: time.time - это функция с тем же именем, что и вмещающий модуль.

Я, вероятно, не могу дать вам пример класса из stdlib, потому что они имеют имена, подобные MyClass, согласно разделу «Имена классов» в PEP8 , в то время как имена модулей, как правило, строчные.

...