Код не ждет инициализации класса!

У меня есть блок кода, который в основном инициализирует несколько классов, но они размещаются в последовательном порядке, поскольку более поздние ссылаются на более ранние.

По какой-то причине последний инициализируется перед первым ... мне кажется, что происходит какая-то потоковая передача. Что мне нужно знать, так это как я могу остановить это?

Есть ли способ заставить класс init делать что-то похожее на отправку возвращаемого значения?

Или, может быть, я мог бы использовать класс в каком-либо операторе if, чтобы проверить, был ли класс уже инициализирован?

Я немного новичок в Python и перехожу с C, поэтому я все еще привыкаю к ​​небольшим различиям, таким как соглашения об именах.

Почтовый индекс, пожалуйста. «Init отправляет возвращаемое значение» указывает на некоторые потенциальные концептуальные проблемы.

S.Lott 18.12.2008 14:15

Вы можете дать нам код? Трудно понять вашу проблему, если мы не знаем, что вы делаете. Кроме того, попробуйте разместить операторы печати в своих конструкторах, чтобы увидеть порядок создания экземпляров.

user21037 18.12.2008 15:21
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
167
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Python до 3.0 имеет глобальную блокировку, поэтому все выполняется в одном потоке и последовательно.

Я предполагаю, что какой-то побочный эффект инициализирует последний класс из другого места, чем вы ожидали. Вызовите исключение в __init__ этого последнего класса, чтобы увидеть, где он вызывается.

Py3k не удаляет GIL AFAIK.

muhuk 18.12.2008 13:49

Пробелы против табуляции проблема ... тьфу. >.>

Ну, по крайней мере, теперь это работает. Я признаю, что мне не хватает фигурных скобок из C вместо принудительного отступа. Тем не менее, это очень удобно в качестве языка прототипирования. Может быть, я полюблю это больше, когда пойму это лучше.

Так сказал Господь: сделай отступ четырьмя пробелами. Ни больше ни меньше. Четыре должно быть число отступов, которое ты сделаешь, и число твоих отступов должно быть четыре. Восьми не делай отступа, и ты не отступаешь от двух, за исключением того, что тогда ты перейдешь к четырем. Вкладки прямо сейчас.

JV. 18.12.2008 13:15

Эта проблема есть у каждого новичка в Python. Просто используйте его в течение недели, и вы к нему привыкнете; Более того, вы начнете видеть, насколько это упростит вашу жизнь. Тем не менее, получите редактор, который исправит отступ за вас.

Aaron Digulla 18.12.2008 13:18

Вскоре вы обнаружите, что требование отступа - это благословение, а не проклятие. Я видел много нечитабельного кода C с фигурными скобками, скрытыми самым непонятным образом. Никогда не видел ничего подобного в Python. Вы просто говорите своему редактору, чтобы он не использовал TAB.

Ber 18.12.2008 14:16

Весь хороший код имеет отступ. Хорошо написанные C, C#, VB и Java имеют отступы. Python ничем не отличается.

S.Lott 18.12.2008 14:16

Я согласен с тем, что в хорошем коде есть отступы, но сначала это немного сбивает с толку, когда он обрабатывается автоматически компьютером, который на самом деле недостаточно умен, чтобы знать, сколько отступа каждая строка, и, кажется, взаимозаменяемо использует табуляции и пробелы. На этой записке; есть ли лучшие IDE для Python, чем IDLE?

Stephen Belanger 18.12.2008 15:26

Да. Определенно. IDLE - это ужасно. Во-первых, вы можете заменить интерактивную оболочку IDLE на ipython. Что касается реальной среды IDE, если вы готовы потратить деньги (от 70 до 150 долларов), попробуйте WingIDE. Это действительно очень хорошо. Лично я использую смесь (хорошо настроенных) Vim, geany и gedit на ubuntu.

user21037 18.12.2008 20:31

В данный момент я пробую Komodo Edit (сейчас я слишком разорен.; _;), И до сих пор это было неплохо. Было бы неплохо, если бы я мог понять, как выполнять сценарии .py ... Я пробовал $ (python) "% ​​F", но, похоже, он не работает в Vista. Продолжает пытаться запустить "C: \ Program" даже с кавычками.

Stephen Belanger 19.12.2008 06:13

Предлагаю вам разделить эти последние комментарии на новые вопросы :) Тогда вы получите больше ответов!

Aaron Digulla 22.12.2008 16:08

Другие вопросы по теме