@ -59,7 +59,7 @@ help вывело справку по функции uspeh в модуле main.
16 больше 5
```
Так как мы не указали какой тип данных должна принимать функция, то функция сможет работать с любыми данными, котороые можно сравнить. Если нельзя сравнить, вернется TypeError.
Так как мы не указали какой тип данных должна принимать функция, то функция сможет работать с любыми данными, которые можно сравнить. Если нельзя сравнить, вернется TypeError.
Этот атрибут __doc__ содержит значение docstring, если при инициализации функции он был задан. Если не был, то inerz.__doc__ будет иметь значение None.
Атрибут __doc__ содержит значение docstring, если при инициализации функции он был задан. Если не был, то inerz.__doc__ будет иметь значение None.
## 3.2 Сохранение ссылки на объект-функции в другой переменной
@ -257,7 +258,7 @@ Python передаёт ссылку на объект функции logistfun
[1, 2, -1, -2, 0, 2, -1, -1]
```
Со звёздочкой коллекции передаются как набор аргументов функции. Это - "оператор распаковки". Это было бы эквивалентно записи slozh(b1,b2,b3,b4).
Со звёздочкой коллекции передаются как набор аргументов функции. * - "оператор распаковки". Это было бы эквивалентно записи slozh(b1,b2,b3,b4).
## 4.5 Пример со значениями аргументов функции, содержащимися в словаре
@ -315,7 +316,7 @@ Python передаёт ссылку на объект функции logistfun
Подобным же образом в списке аргументов функции также можно использовать словарь, предварив его имя двумя звездочками.
```py
>>> def func4(a,b=7,**dct1): #Аргументы: a-позиционный, b- по умолчанию + кортеж
>>> def func4(a,b=7,**dct1): #Аргументы: a-позиционный, b- по умолчанию + словарь
... """Словарь - сборка аргументов - должен быть последним!"""
Вызов лямбда-функции создает объект класса "функция", который потом можно положить в другую переменную и далее вызывать. Это необязательно, если она используется один раз, можно вызвать ее сразу. Внутри лямбда-функции не могут использоваться многострочные выражения, нельзя использовать if-else.
Вызов лямбда-функции создает объект класса "функция". Внутри лямбда-функции не могут использоваться многострочные выражения, нельзя использовать if-else.
## 5.2 Функции-генераторы
@ -456,7 +457,7 @@ __next__ помогает вывести значение, которое yield
```
Внутри функции glb принял значение 8, но глобальная переменная при этом после выполнения
функции значения не поменяла. Это происходит потому, что технически, локальный glb и глобальный glb - это два разных объекта.
функции значения не поменяла. Это происходит потому, что локальный glb и глобальный glb - это два разных объекта.
Пример 2. Ошибка в использовании локального объекта.
UnboundLocalError: cannot access local variable 'glb' where it is not associated with a value
```
Переменной glb присваивается значение внутри функции. Поэтому python решает, что glb - это локальная переменная для всей функции. Но когда выполнение доходит до строки 3 print(glb), локальная переменная glb еще не была инициализирована (это происходит только в строке 4).
Переменной glb присваивается значение внутри функции. Поэтому python решает, что glb - это локальная переменная для всей функции. Но когда выполнение доходит до строки 3 print(glb), локальная переменная glb еще не была инициализирована (это происходит только в строке 4), поэтому выходит ошибка.