У меня есть блок кода, который в основном инициализирует несколько классов, но они размещаются в последовательном порядке, поскольку более поздние ссылаются на более ранние.
По какой-то причине последний инициализируется перед первым ... мне кажется, что происходит какая-то потоковая передача. Что мне нужно знать, так это как я могу остановить это?
Есть ли способ заставить класс init делать что-то похожее на отправку возвращаемого значения?
Или, может быть, я мог бы использовать класс в каком-либо операторе if, чтобы проверить, был ли класс уже инициализирован?
Я немного новичок в Python и перехожу с C, поэтому я все еще привыкаю к небольшим различиям, таким как соглашения об именах.
Вы можете дать нам код? Трудно понять вашу проблему, если мы не знаем, что вы делаете. Кроме того, попробуйте разместить операторы печати в своих конструкторах, чтобы увидеть порядок создания экземпляров.






Python до 3.0 имеет глобальную блокировку, поэтому все выполняется в одном потоке и последовательно.
Я предполагаю, что какой-то побочный эффект инициализирует последний класс из другого места, чем вы ожидали. Вызовите исключение в __init__ этого последнего класса, чтобы увидеть, где он вызывается.
Py3k не удаляет GIL AFAIK.
Пробелы против табуляции проблема ... тьфу. >.>
Ну, по крайней мере, теперь это работает. Я признаю, что мне не хватает фигурных скобок из C вместо принудительного отступа. Тем не менее, это очень удобно в качестве языка прототипирования. Может быть, я полюблю это больше, когда пойму это лучше.
Так сказал Господь: сделай отступ четырьмя пробелами. Ни больше ни меньше. Четыре должно быть число отступов, которое ты сделаешь, и число твоих отступов должно быть четыре. Восьми не делай отступа, и ты не отступаешь от двух, за исключением того, что тогда ты перейдешь к четырем. Вкладки прямо сейчас.
Эта проблема есть у каждого новичка в Python. Просто используйте его в течение недели, и вы к нему привыкнете; Более того, вы начнете видеть, насколько это упростит вашу жизнь. Тем не менее, получите редактор, который исправит отступ за вас.
Вскоре вы обнаружите, что требование отступа - это благословение, а не проклятие. Я видел много нечитабельного кода C с фигурными скобками, скрытыми самым непонятным образом. Никогда не видел ничего подобного в Python. Вы просто говорите своему редактору, чтобы он не использовал TAB.
Весь хороший код имеет отступ. Хорошо написанные C, C#, VB и Java имеют отступы. Python ничем не отличается.
Я согласен с тем, что в хорошем коде есть отступы, но сначала это немного сбивает с толку, когда он обрабатывается автоматически компьютером, который на самом деле недостаточно умен, чтобы знать, сколько отступа каждая строка, и, кажется, взаимозаменяемо использует табуляции и пробелы. На этой записке; есть ли лучшие IDE для Python, чем IDLE?
Да. Определенно. IDLE - это ужасно. Во-первых, вы можете заменить интерактивную оболочку IDLE на ipython. Что касается реальной среды IDE, если вы готовы потратить деньги (от 70 до 150 долларов), попробуйте WingIDE. Это действительно очень хорошо. Лично я использую смесь (хорошо настроенных) Vim, geany и gedit на ubuntu.
В данный момент я пробую Komodo Edit (сейчас я слишком разорен.; _;), И до сих пор это было неплохо. Было бы неплохо, если бы я мог понять, как выполнять сценарии .py ... Я пробовал $ (python) "% F", но, похоже, он не работает в Vista. Продолжает пытаться запустить "C: \ Program" даже с кавычками.
Предлагаю вам разделить эти последние комментарии на новые вопросы :) Тогда вы получите больше ответов!
Почтовый индекс, пожалуйста. «Init отправляет возвращаемое значение» указывает на некоторые потенциальные концептуальные проблемы.