Как да дефинирам функцията в програмата за импортиране, така че да е видима вътре в imported? Опитах това
importer.py
is
def build():
print "building"
build()
import imported
При което imported.py
е просто
build()
И все пак това се проваля
building
Traceback (most recent call last):
File "C:\Users\valentin\Desktop\projects\maxim\miniGP\b01\evaluator\importer.py", line 6, in <module>
import imported
File "C:\Users\valentin\Desktop\projects\maxim\miniGP\b01\evaluator\imported.py", line 1, in <module>
build()
NameError: name 'build' is not defined
Актуализация След като получих отговор да направя цикличното импортиране, така че импортирането и импортирането да зависят едно от друго, смятам, че трябва да поясня, че това не винаги е добре. Целта ми е да уточня някаква обща стратегия в импортирания модул. Той ще използва някои дефинирани от потребителя функции, напр. build
. Потребителят дефинира необходимата функция(и) и извиква стратегията. Въпросът е, че споделената стратегия не трябва да зависи от определени потребителски дефиниции. Вярвам, че вместо import
, имам нужда от нещо като evaluate(imported.py)
, което според мен е основна функция във всеки скриптов език, включително Python. irc://freenode/python настоява да използвам import
, но не разбирам как.
import
, като страничен ефект от импортирането на самия модул. (Така че, акоfoo.py
съдържаbar = 1 + 1
и виеimport foo
, тогава имате достъп доfoo.bar == 2
, защотоfoo.py
е оценено!) - person Izkata   schedule 04.11.2013