Документирование функции




Создание функций

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

Здесь вы научитесь:

· писать собственные функции;

· передавать этим функциям какие-либо значения с помощью параметров;

· получать значения, возвращаемые функциями;

· работать с глобальными переменными и константами;

· разрабатывать компьютерного противника для игры-стратегии.

Знакомство с игрой «Крестики-нолики»

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

Создание функций

Вы уже видели, как работают некоторые из встроенных, или стандартных, функций, например len() и range(). Когда встроенных функций Python оказывается недостаточно, программист пишет свои собственные, нестандартные функции. Они работают точно так же, как и поставляемые вместе с дистрибутивом языка: выполняется какая-либо частная задача, и затем программа продолжает работу. У нестандартных функций много достоинств, главное из которых состоит в том, что с их помощью код можно разбить на несколько фрагментов. Программу, которая представляет собой один большой набор команд, не разделенный на смысловые части, трудно разрабатывать, понимать и улучшать, а программу, собранную из функций, - гораздо легче. Необходимо только, чтобы ваши собственные функции, как и стандартные, были оптимизированы для решения строго определенных задач.

Знакомство с программой «Инструкция»

Код, выводящий на экран инструкцию к игре Крестики нолики, я оформил отдельной программой, которая так и называется - Инструкция. Код имеет несколько непривычный для вас вид, потому что для вывода текста на экран я создал функцию.

# Инструкция# Демонстрирует. как создавать собственные функции def instructions(): print ("""Выводит на экран инструкцию для игрока.""" """ Добро пожаловать на ринг грандиознейших интеллектуальных состязаний всех времен. Твой мозг и мой процессор сойдутся в схватке за доской игры "Крестики-нолики". Чтобы сделать ход. введи число от О до 8. Числа однозначно соответствуют полям доски - так. как показано ниже: 0 | 1 | 2 --------- 3 | 4 | 5 --------- 6 | 7 | 8 Приготовься к бою. жалкий белковый человечишка. Вот-вот начнется решающее сражение. \n """) # основная часть print ("Этo инструкция для игры в 'Крестики-нолики':")instructions() print ("Этo опять та же самая инструкция:")instructions() print ("Haдeюcь, теперь смысл игры ясен.")input(" \n\n Haжмитe Enter, чтобы выйти.")

 

Объявление функции

Запись новой функции я начал с такой строки кода:

def instructions():

 

Эта строка сообщает интерпретатору, что следующий блок кода – функция instructions(). Будем называть его блоком выражений. Каждый раз, когда в программе будет вызвана функция instructions(), компьютер исполнит блок выражений. Строка с оператором def и блок выражений, вместе взятые, - это объявление функции. Хотя из него ясно, какую задачу решает функция, работу функции оно не запускает. Встретив объявление, интерпретатор лишь замечает, что есть такая функция и что в будущем ее можно применить. Эта функция не сработает до тех пор, пока не будет вызвана далее в программе.

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

Документирование функции

Есть особый механизм, пользуясь которым можно оставлять пояснения к функциям. Речь идет о так называемых документирующих строках. Функцию instructiоns() документирует такая строка:

"""Выводит на экран инструкцию для игрока."""

 

Документирующая строка в функциях представляет собой, как правило, строку в тройных кавычках. В блоке выражений она обязательно идет первой по порядку. Если вы решили документировать несложную функцию, то можете, как я, описать одним предложением, что именно делает эта функция. Если документирующей строки нет, на работе функции это не скажется. Однако лучше пусть она будет: так вы скорее привыкнете комментировать свой код и научитесь ясно формулировать задачи, которые ставите перед своими функциями. Интересно также, что в IDLE, когда вы будете набирать вызов своей функции, документирующая ее строка появится на экране в качестве подсказки.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-02-06 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: