Предотвращение дублирования элементов пространства имен в импорте Python - PullRequest
0 голосов
/ 27 ноября 2018

Это, вероятно, пережиток моих дней как программиста ac #, и мне, вероятно, просто нужно изучить "питонический" способ делать вещи.Я относительно новичок в python, но уже много лет пишу на c #.

В моем проекте есть модуль python с именем applib, где я храню несколько классов.Каждый класс содержится в своем собственном файле с тем же именем (например, Foo.py имеет класс с именем Foo, Bar.py имеет класс с именем Bar и т. Д.).

Когда я хочу использовать класс, ядолжен сказать

import applib.Foo

, за которым следует что-то вроде

my_foo=applib.Foo.Foo()

Это приводит к необходимости дважды указывать "Foo" в моем объявлении (один раз для имени модуля, а затем снова дляучебный класс).В c # я мог контролировать это с помощью директивы пространства имен в верхней части файла классов, но в python я не знаю способа контролировать это, за исключением помещения всех моих классов в один файл.Я знаю, что могу также импортировать класс, используя

from applib.Foo import Foo

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

Может кто-нибудь дать мне некоторые рекомендации по более питонической методологии для структуры пространства имен в приложении?

...