Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [ 44 ] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

func doc doc

Строка документации или None, если она не определена.

func name

name

Имя функции.

func defaults

Значения аргументов по умолчанию или None, если ни один аргумент не имеет значения по умолчанию.

func code

Объект кода (code), представляющий собой байт-компилированное тело функции.

func globals

Ссылается на словарь, представляющий глобальное пространство имен модуля, в котором определена функция (имена, являющиеся для функции глобальными).

Атрибутам func doc (или doc ), func defaults и func code можно присвоить новые значения, остальные - доступны только для чтения9.

11.4.2 Методы, определенные пользователем

Объект-метод (instance method) создается при обращении к атрибуту класса или экземпляра класса, определенному как функция-атрибут класса. Если же Вы обратитесь к нему напрямую через специальный атрибут класса dict , Вы получите объект-функцию в неизменном виде. Метод может быть привязанным к экземпляру класса (если Вы обращаетесь к нему как к атрибуту экземпляра класса) и не привязанным (если Вы обращаетесь к нему как к атрибуту класса). Важно понимать, что преобразование атрибута-функции в атрибут-метод производится, только если функция является атрибутом класса. Функции, являющиеся атрибутами экземпляра класса в метод не преобразуются.

9func globals является объектом изменяемого типа - Вы можете внести в него изменения, например, используя методы, но не можете присвоить новое значение. Следует понимать, что при этом будет изменено глобальное пространство имен модуля, в котором определена функция, и изменения отразятся на других объектах, определенных в этом модуле.

11.4.1 Функции, определенные пользователем

Объекты-функции (function) создаются при определении функции с помощью инструкции def или оператора lambda. Единственная операция, определенная для функций - их вызов: func (arglist) .

Объекты-функции имеют следующие атрибуты:



im func

Объект-функция, реализующая метод. Атрибут доступен только для чтения.

im self

Экземпляр класса, к которому применяется метод (None, если метод не привязан). Атрибут доступен только для чтения.

im class

Класс, в котором метод определен. Атрибут доступен только для чтения.

name

Имя метода (то же самое, что и im func. name ).

doc

Строка документации (то же самое, что и im func. doc ).

При вызове метода, не привязанного к экземпляру класса, вызывается лежащая в его основе функция (im func) с одной лишь разницей: если первый аргумент не является экземпляром класса im class или производного от него класса, генерируется исключение TypeError. Если же метод привязан к определенному экземпляру класса, функция im func вызывается со списком аргументов, в начало которого вставлен экземпляр im self. То есть, если класс C содержит определение функции f и x является экземпляром класса C, то вызов x.f(1) эквивалентен вызову C.f(x, 1).

Заметим, что преобразование объекта-функции в (привязанный или не привязанный к экземпляру класса) метод происходит при каждом обращении к атрибуту класса или его экземпляра. В некоторых случаях Вы можете немного ускорить работу программы, присвоив метод локальной переменной и затем используя ее для многократного вызова метода.

11.4.3 Встроенные функции и методы

Встроенные функции и методы представляются в языке Python объектами одного типа - builtin function or method. Количество и тип воспринимаемых ими аргументов определяется реализацией. Объекты, представляющие встроенные функции и методы, являются неизменяемыми и не содержат ссылок на изменяемые объекты.

Объекты builtin function or method имеют следующие атрибуты:

doc

Строка документации (None, если строка документации не определена).

name

Имя функции/метода.

Объекты-методы имеют следующие атрибуты:



11.4.4 Классы

Когда вызывается объект-класс, создается и возвращается новый экземпляр этого класса. При этом подразумевается вызов специального метода класса init (если он определен) с аргументами, с которыми вызывается объект-класс. Если метод init не определен, объект-класс должен вызываться без аргументов. Свойства объектов-классов описаны в разделе 11.6.1.

11.4.5 Экземпляры классов

Если для класса определить метод call () (см. раздел 11.6.3), то его экземпляры будут поддерживать вызов: вызов экземпляра (x( arglist ) ) преобразуется в вызов метода call () с теми же аргументами (x. call (arglist)). Свойства экземпляров классов описаны в разделе 11.6.2.

11.5 Модули

Единственная операция, поддерживаемая объектами-модулями - доступ к их атрибутам: т. name, где m - модуль и name - имя, определенное в пространстве имен модуля m (Вы можете как получить, так и присвоить новое значение атрибуту модуля). Для создания объекта модуля предназначена инструкция import (см. раздел 10.3.10).

Объекты модули имеют следующие атрибуты:

dict

Словарь, являющийся таблицей имен модуля. Внося в него изменения, Вы меняете таблицу имен модуля, однако присваивание атрибуту dict невозможно (то

есть Вы можете написать m. dict [a] = 1, тем самым определив m.a

равным 1, но не можете написать m. dict = {}).

name

Имя модуля.

doc

Строка документации модуля.

file

Полное имя файла, содержащего определение модуля (у модулей, статически встроенных в интерпретатор, атрибут file отсутствует).

self

Ссылка на объект, к которому должен применяться метод или None для встроенных функций.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [ 44 ] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145