Пожалуйста, обратите внимание следующие модули Python выдержки:модуль и объект Python имена конфликтовать
foo.py:
class Foo:
(...)
bar.py:
import foo
foo = foo.Foo()
переменная Foo, который был объект модуля, перезаписывается объектом Foo.
Я знаю, что я могу использовать другие имена для объекта, например .:
foobar = foo.Foo()
но семантический имеет больше смысла в моем коде, чтобы он называется Foo, так как это будет единственным экземпляром.
(я пытался обойти это путем сбрасывания классов и использовать только модули, но я вернулся к использованию классов, потому что с помощью модулей было только «грубости» проблемы.)
Это своего рода философский вопрос, но что является «правильным» способом обращения с этим потенциальным конфликтом имен объектов/модулей?
Я не думаю, что для всех модулей есть один правильный путь - это действительно зависит от имени модуля. Как указывает @ F.J, вы можете импортировать его как нечто другое, но я бы скорее изменил имя переменной. Каковы имена модулей и классов в вашем конкретном случае? –
Имена модулей/классов - это камера, сеть, gpio, база данных и т. Д. –
Да, я вижу, как вы хотите назвать 'camera.Camera()' instance' camera'. Возможно, просто импортируйте имена классов, а не целые модули, как в «из камеры импорта камеры»? Затем вы можете безопасно использовать 'camera' в качестве вашего имени переменной. –