Пожалуйста, обратите внимание на следующие выдержки из модулей Python:
foo.py:
class Foo:
(...)
бар.py:
import foo
foo = foo.Foo()
Переменная foo, которая была объектом модуля, перезаписывается объектом Foo.
Я знаю, что могу использовать другие имена для объекта, например:
foobar = foo.Foo()
но семантически в моем коде имеет больше смысла называть его foo, так как это будет единственный экземпляр.
(Я пытался обойти это, отбрасывая классы и используя только модули, но я вернулся к использованию классов, потому что использование модулей имело только проблемы с «надежностью».)
Это своего рода философский вопрос, но каков «правильный» способ справиться с этим потенциальным конфликтом имен объектов/модулей?
camera.Camera()
camera
. Возможно, просто импортировать имена классов, а не целые модули, как вfrom camera import Camera
? Затем вы можете безопасно использоватьcamera
в качестве имени вашей переменной. - person Ben Hoyt   schedule 04.04.2013