Книга «Изучаем Python»



Pdf көрінісі
бет82/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   78   79   80   81   82   83   84   85   ...   238
Байланысты:
2 5343781172763690906

ПРИМЕЧАНИЕ 

На самом деле не так важно, какой стиль вызова вы используете . Если ваша функция выдает нуж-

ный результат, выберите тот стиль, который вам кажется более понятным .

Предотвращение ошибок в аргументах

Не удивляйтесь, если на первых порах вашей работы с функциями будут встре-

чаться ошибки несоответствия аргументов. Такие ошибки происходят в том слу-

чае, если вы передали меньше или больше аргументов, чем необходимо функции 

для выполнения ее работы. Например, вот что произойдет при попытке вызвать 

describe_pet()

 без аргументов:

def describe_pet(animal_type, pet_name):

    """Выводит информацию о животном."""

    print("\nI have a " + animal_type + ".")

    print("My " + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet()



142    Глава 8  •  Функции

Python понимает, что при вызове функции часть информации отсутствует, и мы 

видим это в данных трассировки:

Traceback (most recent call last): 

  File "pets.py", line 6, in



    describe_pet() 

TypeError: describe_pet() missing 2 required positional arguments: 



             'animal_

type' and 'pet_name'

В точке  сообщается местонахождение проблемы, чтобы вы поняли, что с вызовом 

функции что-то пошло не так. В точке  приводится вызов функции, приведший 

к ошибке. В точке  Python сообщает, что при вызове пропущены два аргумента, 

и сообщает имена этих аргументов. Если бы функция размещалась в отдельном 

файле, вероятно, вы смогли бы исправить вызов, и вам не пришлось бы открывать 

этот файл и читать код функции.

Python помогает еще и тем, что он читает код функции и сообщает имена аргумен-

тов, которые необходимо передать при вызове. Это еще одна причина для того, 

чтобы присваивать переменным и функциям содержательные имена. В этом случае 

сообщения об ошибках Python принесут больше пользы как вам, так и любому 

другому разработчику, который будет использовать ваш код.

Если при вызове будут переданы лишние аргументы, вы получите похожую 

трассировку, которая поможет привести вызов функции в соответствие с ее 

определением.





Достарыңызбен бөлісу:
1   ...   78   79   80   81   82   83   84   85   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет