Руководство по языку Питон в CIV

Материал из Modiki.

Перейти к: навигация, поиск

 Руководство по языку Python в Civilization IV

Apolyton.jpg

Автор: Jon Shafer (Firaxis)
оригинал статьи на Аполитоне



На самом деле модостроение на Питоне не трудно, но первый раз проскочить мертвую точку - довольно пугающе, по крайней мере для меня. Теперь, когда я прошел это, я знаю некоторые из камней преткновения, на которые я налетел, пробуя изучить Питон и особенности его реализации в CIV. Надеюсь, что этот ресурс поможет другим людям. Если найдется кто-то, кто будет делать моды не пользуясь им, я собираюсь выказать таким людям свое глубокое восхищение.

Я не собираюсь рассматривать здесь основы программирования, так как для этого есть лучшие источники в Сети и в реальном мире, чем я. Я также не собираюсь давать большое количество материала по Питону, как языку программирования, по той же самой причине. Для ознакомления с базовыми положениями программирования вообще и программирования на Питоне в частности, ознакомьтесь с курсом Gingerbread Man (тема на CFC или сайт; русский перевод), поскольку он прекрасно сделал свою работу по организации такого материала.

То, что я раскрою, - немного ООП (Объектно-Ориентированного Программирования), поскольку это кое-что было не сильно затронуто в уроках GBM (он дает уроки по классам, но в значительной степени все в материале Питона CIV полагается на ООП), и я также пробегусь через несколько более основных вещей, только чтобы обозначить вещи тем способом, которым я хочу, а также для обзора.

Основы Питона

Если у Вас есть опыт программирования или Вы прошли уроки GBM, Вы знаете, что первичная структура программ включает в себя функции и классы. Классы содержат функции и переменные и используются, чтобы организовать единицы хранения данных, которые связаны в 'объекты', к которым можно получить доступ, указывая класс и переменную/функцию вместе. Я дам примеры этого позже, но пока просто важно знать структуру вещей.

Одна вещь, которая является уникальной для Питона по сравнению с большинством языков - то, что переменные фактически не хранят данные, а ссылаются 'на объекты' (несколько отличное понятие от того, что мы уже упомянули). Для большинства других языков данные хранятся в памяти и указан тип (целое число, строка, и т.д.) и идентификатор (название переменной). В Питоне данные хранятся в памяти как объект, и тип хранится там же, в то время как переменные просто ССЫЛАЮТСЯ, или указывают на местоположение этих данных в памяти (это известно как указатель в других языках). Это означает то, что когда Вы создаете переменную, Вы не должны указывать тип, потому что тип хранится в объекте непосредственно, а не в переменной.

Есть также другие вещи, которые отличают Питон от других языков при работе с указателями вместо контейнеров данных, но знать это будут только имеющие опыт в программировании, а неопытным этого знать не надо ;). Чтобы излагать вещи понятней (для меня, главным образом), я буду просто обращаться с переменными как с нормальной переменной в терминологическом смысле, вместо того, чтобы рассмотреть их как указатели, которыми они являются на самом деле.

Кое-что важно помнить в Питоне - то, что там не используются скобки, чтобы обозначить границы программных блоков - все сделано через втяжку (indentation) исходного текста программы. Важно следить за втяжкой и удостоверяться, что ничто не висит в вашем коде. Я люблю удалять все пробелы в конце строк программного кода, с которым работаю, чтобы удостовериться, что ничего мне не испортит жизнь.

Руководство по языку Питон в CIV (Jon Shafer)
Основы Питона | Классы в Питоне | Питон в CIV | Итерирование (организация циклов) | Присваивание функций CIV | Создание юнита в CIV
Python в Civilization IV
Личные инструменты
Главный редактор − NeverMind: NM[на]civfanatics.ru Техподдержка − The Pretender: ThePretender[на]civfanatics.ru