То, что я пытаюсь сделать, может быть проще объяснить на примере. Рассмотрим следующий код:Инициализация глобальных переменных с использованием импорта Python 3
В файле my_custom_module.py
def oop_type_a():
__init__(self):
# class definitions, etc...
def oop_type_b():
__init__(self):
# class definitions, etc...
def define_a_bunch_of_oop_variables():
global oop1
global oop2
oop1 = oop_type_a()
oop2 = oop_type_b()
Используя этот файл, я могу запустить следующие команды:
>>>import my_custom_module
>>>my_custom_module.define_a_bunch_of_oop_variables()
>>>from my_custom_module import *
>>>oop1
<my_custom_module.oop_type_a object at 0x000000000615F470>
>>>oop2
<my_custom_module.oop_type_a object at 0x000000000615F5C0>
Есть ли способ, чтобы получить такую же функциональность безfrom my_custom_module import *
? Каков питонический способ достичь этого?
У меня есть несколько объектов, которые мне нужно инициализировать каждый раз я использовать этот модуль, и делает это утомительно:
>>>import my_custom_module
>>>oop1 = my_custom_module.oop_type_a()
>>>oop2 = my_custom_module.oop_type_b()
Это не Pythonic иметь модуль создания имен за пределами его собственного пространства имен. – BrenBarn
Это справедливо. Является ли метод Pythonic для этого просто иметь текстовый файл команд 'oop1 = my_custom_module.oop_type_a()', которые я копирую-вставляю каждый раз, когда я использую этот модуль? –
На самом деле это не общий способ программирования для определения таких глобальных переменных и использования его вне вашего модуля. Коренной причиной вашей проблемы является то, как вы организуете код и логику. –