Вбудовані функції¶
Інтерпретатор Python має низку функцій і типів, які вбудовані в нього та завжди доступні. Вони перераховані тут в алфавітному порядку.
Вбудовані функції |
||||
---|---|---|---|---|
|
||||
-
abs
(x)¶ Return the absolute value of a number. The argument may be an integer, a floating point number, or an object implementing
__abs__()
. If the argument is a complex number, its magnitude is returned.
-
all
(iterable)¶ Повертає
True
, якщо всі елементи iterable є істинними (або якщо iterable порожній). Дорівнює:def all(iterable): for element in iterable: if not element: return False return True
-
any
(iterable)¶ Повертає
True
, якщо будь-який елемент iterable є істинним. Якщо iterable порожній, повернітьFalse
. Дорівнює:def any(iterable): for element in iterable: if element: return True return False
-
ascii
(object)¶ As
repr()
, return a string containing a printable representation of an object, but escape the non-ASCII characters in the string returned byrepr()
using\x
,\u
or\U
escapes. This generates a string similar to that returned byrepr()
in Python 2.
-
bin
(x)¶ Convert an integer number to a binary string prefixed with «0b». The result is a valid Python expression. If x is not a Python
int
object, it has to define an__index__()
method that returns an integer. Some examples:>>> bin(3) '0b11' >>> bin(-10) '-0b1010'
If prefix «0b» is desired or not, you can use either of the following ways.
>>> format(14, '#b'), format(14, 'b') ('0b1110', '1110') >>> f'{14:#b}', f'{14:b}' ('0b1110', '1110')
Дивіться також
format()
для отримання додаткової інформації.
-
class
bool
([x])¶ Return a Boolean value, i.e. one of
True
orFalse
. x is converted using the standard truth testing procedure. If x is false or omitted, this returnsFalse
; otherwise it returnsTrue
. Thebool
class is a subclass ofint
(see Числові типи — int, float, complex). It cannot be subclassed further. Its only instances areFalse
andTrue
(see Boolean Values).Змінено в версії 3.7: x is now a positional-only parameter.
-
breakpoint
(*args, **kws)¶ This function drops you into the debugger at the call site. Specifically, it calls
sys.breakpointhook()
, passingargs
andkws
straight through. By default,sys.breakpointhook()
callspdb.set_trace()
expecting no arguments. In this case, it is purely a convenience function so you don’t have to explicitly importpdb
or type as much code to enter the debugger. However,sys.breakpointhook()
can be set to some other function andbreakpoint()
will automatically call that, allowing you to drop into the debugger of choice.Викликає подію аудиту
builtins.breakpoint
з аргументомbreakpointhook
.Нове в версії 3.7.
-
class
bytearray
([source[, encoding[, errors]]]) Повертає новий масив байтів. Клас
bytearray
— це змінна послідовність цілих чисел у діапазоні 0 <= x < 256. Він містить більшість звичайних методів змінних послідовностей, описаних у Змінні типи послідовностей, а також більшість методи, які має типbytes
, див. Операції з байтами та масивом байтів.Додатковий параметр source можна використовувати для ініціалізації масиву кількома різними способами:
Якщо це рядок, ви також повинні надати параметри encoding (і, необов’язково, errors); Потім
bytearray()
перетворює рядок на байти за допомогоюstr.encode()
.Якщо це ціле число, масив матиме такий розмір і буде ініціалізовано нульовими байтами.
Якщо це об’єкт, що відповідає інтерфейсу буфера, для ініціалізації масиву байтів буде використано буфер лише для читання об’єкта.
Якщо це iterable, це має бути iterable цілих чисел у діапазоні
0 <= x < 256
, які використовуються як початковий вміст масиву.
Без аргументу створюється масив розміром 0.
Дивіться також Типи бінарних послідовностей — bytes, bytearray, memoryview і Об’єкти байтового масиву.
-
class
bytes
([source[, encoding[, errors]]]) Return a new «bytes» object, which is an immutable sequence of integers in the range
0 <= x < 256
.bytes
is an immutable version ofbytearray
– it has the same non-mutating methods and the same indexing and slicing behavior.Відповідно, аргументи конструктора інтерпретуються як для
bytearray()
.Об’єкти Bytes також можна створювати за допомогою літералів, див. Рядкові та байтові літерали.
Дивіться також Типи бінарних послідовностей — bytes, bytearray, memoryview, Об’єкти Bytes і Операції з байтами та масивом байтів.
-
callable
(object)¶ Return
True
if the object argument appears callable,False
if not. If this returnsTrue
, it is still possible that a call fails, but if it isFalse
, calling object will never succeed. Note that classes are callable (calling a class returns a new instance); instances are callable if their class has a__call__()
method.Нове в версії 3.2: Цю функцію спочатку було видалено в Python 3.0, а потім повернуто в Python 3.2.
-
chr
(i)¶ Повертає рядок, що представляє символ, кодовою точкою Unicode якого є ціле число i. Наприклад,
chr(97)
повертає рядок'a''
, аchr(8364)
повертає рядок'€'
. Це зворотне доord()
.Допустимий діапазон для аргументу – від 0 до 1 114 111 (0x10FFFF за основою 16).
ValueError
буде викликано, якщо i знаходиться за межами цього діапазону.
-
@
classmethod
¶ Перетворення методу в метод класу.
A class method receives the class as implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom:
class C: @classmethod def f(cls, arg1, arg2): ...
Форма
@classmethod
є функцією decorator – подробиці див. Визначення функцій.Метод класу можна викликати або в класі (наприклад,
C.f()
), або в екземплярі (такому якC().f()
). Примірник ігнорується, за винятком його класу. Якщо метод класу викликається для похідного класу, об’єкт похідного класу передається як неявний перший аргумент.Методи класу відрізняються від статичних методів C++ або Java. Якщо ви хочете їх, перегляньте
staticmethod()
у цьому розділі. Для отримання додаткової інформації про методи класу див. Стандартна ієрархія типів.Змінено в версії 3.9: Методи класу тепер можуть обгортати інші дескриптори, такі як
property()
.
-
compile
(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)¶ Скомпілюйте джерело в код або об’єкт AST. Об’єкти коду можуть бути виконані за допомогою
exec()
абоeval()
. джерело може бути звичайним рядком, рядком байтів або об’єктом AST. Зверніться до документації модуляast
, щоб дізнатися, як працювати з об’єктами AST.Аргумент ім’я_файлу повинен давати файл, з якого було прочитано код; передати певне розпізнаване значення, якщо воно не було прочитано з файлу (зазвичай використовується
' <string>'
).Аргумент mode визначає тип коду, який потрібно скомпілювати; це може бути
'exec'
, якщо source складається з послідовності операторів,'eval'
, якщо воно складається з одного виразу, або'single'
, якщо воно складається з одного інтерактивний оператор (в останньому випадку оператори-вирази, які мають значення, відмінне відNone
, будуть надруковані).Необов’язкові аргументи flags і dont_inherit визначають, які параметри компілятора мають бути активовані та які майбутні функції мають бути дозволені. Якщо жоден не присутній (або обидва дорівнюють нулю), код компілюється з тими самими прапорцями, які впливають на код, який викликає
compile()
. Якщо надано аргумент flags, а dont_inherit — ні (або дорівнює нулю), то параметри компілятора та майбутні оператори, визначені аргументом flags, використовуються на додаток до тих, які були б використані в будь-якому випадку. Якщо dont_inherit є ненульовим цілим числом, то це аргумент flags — прапори (майбутні функції та параметри компілятора) у навколишньому коді ігноруються.Параметри компілятора та майбутні оператори визначаються бітами, які можна об’єднати порозрядним АБО, щоб визначити кілька параметрів. Бітове поле, необхідне для вказівки певної майбутньої функції, можна знайти як атрибут
compiler_flag
екземпляра_Feature
у модулі__future__
. Прапори компілятора можна знайти вast
модулі з префіксомPyCF_
.Аргумент optimize визначає рівень оптимізації компілятора; значення за замовчуванням
-1
вибирає рівень оптимізації інтерпретатора, як задано параметрами-O
. Явні рівні:0
(немає оптимізації;__debug__
є істинним),1
(затвердження видалено,__debug__
є хибним) або2
(рядки документа також видалено ).Ця функція викликає
SyntaxError
, якщо скомпільоване джерело недійсне, іValueError
, якщо джерело містить нульові байти.Якщо ви хочете розібрати код Python у його представлення AST, перегляньте
ast.parse()
.Викликає подію аудиту
компіляція
з аргументамиджерело
таназва файлу
. Ця подія також може бути викликана неявною компіляцією.Примітка
Під час компіляції рядка з багаторядковим кодом у режимі
'single'
або'eval'
вхідні дані мають завершуватися принаймні одним символом нового рядка. Це робиться для полегшення виявлення неповних і повних операторів у модуліcode
.Попередження
Можливий збій інтерпретатора Python із досить великим/складним рядком під час компіляції в об’єкт AST через обмеження глибини стеку в компіляторі AST Python.
Змінено в версії 3.2: Allowed use of Windows and Mac newlines. Also input in
'exec'
mode does not have to end in a newline anymore. Added the optimize parameter.Змінено в версії 3.5: Раніше
TypeError
виникало, коли в source зустрічалися нульові байти.Нове в версії 3.8:
ast.PyCF_ALLOW_TOP_LEVEL_AWAIT
тепер можна передавати у прапорах, щоб увімкнути підтримку верхнього рівняawait
,async for
іasync with
.
-
class
complex
([real[, imag]])¶ Return a complex number with the value real + imag*1j or convert a string or number to a complex number. If the first parameter is a string, it will be interpreted as a complex number and the function must be called without a second parameter. The second parameter can never be a string. Each argument may be any numeric type (including complex). If imag is omitted, it defaults to zero and the constructor serves as a numeric conversion like
int
andfloat
. If both arguments are omitted, returns0j
.For a general Python object
x
,complex(x)
delegates tox.__complex__()
. If__complex__()
is not defined then it falls back to__float__()
. If__float__()
is not defined then it falls back to__index__()
.Примітка
When converting from a string, the string must not contain whitespace around the central
+
or-
operator. For example,complex('1+2j')
is fine, butcomplex('1 + 2j')
raisesValueError
.Складний тип описано в Числові типи — int, float, complex.
Змінено в версії 3.6: Допускається групування цифр із підкресленням, як у кодових літералах.
Змінено в версії 3.8: Falls back to
__index__()
if__complex__()
and__float__()
are not defined.
-
delattr
(object, name)¶ This is a relative of
setattr()
. The arguments are an object and a string. The string must be the name of one of the object’s attributes. The function deletes the named attribute, provided the object allows it. For example,delattr(x, 'foobar')
is equivalent todel x.foobar
.
-
class
dict
(**kwarg) -
class
dict
(mapping, **kwarg) -
class
dict
(iterable, **kwarg) Створіть новий словник. Об’єкт
dict
є класом словника. Перегляньтеdict
і Типи зіставлення — dict для документації про цей клас.Для інших контейнерів перегляньте вбудовані класи
list
,set
іtuple
, а також модульcollections
.
-
dir
([object])¶ Без аргументів повертає список імен у поточній локальній області. За допомогою аргументу спробуйте повернути список дійсних атрибутів для цього об’єкта.
If the object has a method named
__dir__()
, this method will be called and must return the list of attributes. This allows objects that implement a custom__getattr__()
or__getattribute__()
function to customize the waydir()
reports their attributes.If the object does not provide
__dir__()
, the function tries its best to gather information from the object’s__dict__
attribute, if defined, and from its type object. The resulting list is not necessarily complete, and may be inaccurate when the object has a custom__getattr__()
.Механізм за замовчуванням
dir()
поводиться по-різному з різними типами об’єктів, оскільки він намагається створити найбільш релевантну, а не повну інформацію:Якщо об’єкт є об’єктом модуля, список містить назви атрибутів модуля.
Якщо об’єкт є об’єктом типу або класу, список містить імена його атрибутів і рекурсивно атрибутів його баз.
В іншому випадку список містить назви атрибутів об’єкта, назви атрибутів його класу та рекурсивно атрибутів базових класів його класу.
Отриманий список відсортовано за алфавітом. Наприклад:
>>> import struct >>> dir() # show the names in the module namespace ['__builtins__', '__name__', 'struct'] >>> dir(struct) # show the names in the struct module ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 'unpack', 'unpack_from'] >>> class Shape: ... def __dir__(self): ... return ['area', 'perimeter', 'location'] >>> s = Shape() >>> dir(s) ['area', 'location', 'perimeter']
Примітка
Оскільки
dir()
надається насамперед для зручності використання в інтерактивному запиті, він намагається надати цікавий набір імен більше, ніж намагається надати чітко або послідовно визначений набір імен, і його детальна поведінка може змінитися через випуски. Наприклад, атрибути метакласу відсутні в списку результатів, якщо аргументом є клас.
-
divmod
(a, b)¶ Take two (non complex) numbers as arguments and return a pair of numbers consisting of their quotient and remainder when using integer division. With mixed operand types, the rules for binary arithmetic operators apply. For integers, the result is the same as
(a // b, a % b)
. For floating point numbers the result is(q, a % b)
, where q is usuallymath.floor(a / b)
but may be 1 less than that. In any caseq * b + a % b
is very close to a, ifa % b
is non-zero it has the same sign as b, and0 <= abs(a % b) < abs(b)
.
-
enumerate
(iterable, start=0)¶ Повертає об’єкт перерахування. iterable має бути послідовністю, iterator або іншим об’єктом, який підтримує ітерацію. Метод
__next__()
ітератора, який повертаєenumerate()
, повертає кортеж, що містить лічильник (від start, який за замовчуванням дорівнює 0) і значення, отримані в результаті ітерації над iterable.>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
Дорівнює:
def enumerate(sequence, start=0): n = start for elem in sequence: yield n, elem n += 1
-
eval
(expression[, globals[, locals]])¶ The arguments are a string and optional globals and locals. If provided, globals must be a dictionary. If provided, locals can be any mapping object.
The expression argument is parsed and evaluated as a Python expression (technically speaking, a condition list) using the globals and locals dictionaries as global and local namespace. If the globals dictionary is present and does not contain a value for the key
__builtins__
, a reference to the dictionary of the built-in modulebuiltins
is inserted under that key before expression is parsed. This means that expression normally has full access to the standardbuiltins
module and restricted environments are propagated. If the locals dictionary is omitted it defaults to the globals dictionary. If both dictionaries are omitted, the expression is executed with the globals and locals in the environment whereeval()
is called. Note, eval() does not have access to the nested scopes (non-locals) in the enclosing environment.The return value is the result of the evaluated expression. Syntax errors are reported as exceptions. Example:
>>> x = 1 >>> eval('x+1') 2
This function can also be used to execute arbitrary code objects (such as those created by
compile()
). In this case pass a code object instead of a string. If the code object has been compiled with'exec'
as the mode argument,eval()
“s return value will beNone
.Hints: dynamic execution of statements is supported by the
exec()
function. Theglobals()
andlocals()
functions returns the current global and local dictionary, respectively, which may be useful to pass around for use byeval()
orexec()
.Перегляньте
ast.literal_eval()
для функції, яка може безпечно обчислювати рядки з виразами, що містять лише літерали.Викликає подію аудиту
exec
з об’єктом коду як аргументом. Також можуть виникати події компіляції коду.
-
exec
(object[, globals[, locals]])¶ This function supports dynamic execution of Python code. object must be either a string or a code object. If it is a string, the string is parsed as a suite of Python statements which is then executed (unless a syntax error occurs). 1 If it is a code object, it is simply executed. In all cases, the code that’s executed is expected to be valid as file input (see the section Введення файлу in the Reference Manual). Be aware that the
nonlocal
,yield
, andreturn
statements may not be used outside of function definitions even within the context of code passed to theexec()
function. The return value isNone
.In all cases, if the optional parts are omitted, the code is executed in the current scope. If only globals is provided, it must be a dictionary (and not a subclass of dictionary), which will be used for both the global and the local variables. If globals and locals are given, they are used for the global and local variables, respectively. If provided, locals can be any mapping object. Remember that at module level, globals and locals are the same dictionary. If exec gets two separate objects as globals and locals, the code will be executed as if it were embedded in a class definition.
Якщо словник globals не містить значення для ключа
__builtins__
, під цим ключем вставляється посилання на словник вбудованого модуляbuiltins
. Таким чином ви можете контролювати, які вбудовані елементи доступні для виконуваного коду, вставивши свій власний словник__builtins__
у globals перед передачею його вexec()
.Викликає подію аудиту
exec
з об’єктом коду як аргументом. Також можуть виникати події компіляції коду.
-
filter
(function, iterable)¶ Construct an iterator from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If function is
None
, the identity function is assumed, that is, all elements of iterable that are false are removed.Зауважте, що
filter(function, iterable)
еквівалентний виразу генератора(item for item в iterable if function(item))
, якщо функція не єNone
і(item for item в iterable if item)
якщо функціяNone
.See
itertools.filterfalse()
for the complementary function that returns elements of iterable for which function returns false.
-
class
float
([x])¶ Return a floating point number constructed from a number or string x.
If the argument is a string, it should contain a decimal number, optionally preceded by a sign, and optionally embedded in whitespace. The optional sign may be
'+'
or'-'
; a'+'
sign has no effect on the value produced. The argument may also be a string representing a NaN (not-a-number), or a positive or negative infinity. More precisely, the input must conform to the following grammar after leading and trailing whitespace characters are removed:sign ::= "+" | "-" infinity ::= "Infinity" | "inf" nan ::= "nan" numeric_value ::=
floatnumber
|infinity
|nan
numeric_string ::= [sign
]numeric_value
Here
floatnumber
is the form of a Python floating-point literal, described in Floating point literals. Case is not significant, so, for example, «inf», «Inf», «INFINITY» and «iNfINity» are all acceptable spellings for positive infinity.Otherwise, if the argument is an integer or a floating point number, a floating point number with the same value (within Python’s floating point precision) is returned. If the argument is outside the range of a Python float, an
OverflowError
will be raised.For a general Python object
x
,float(x)
delegates tox.__float__()
. If__float__()
is not defined then it falls back to__index__()
.Якщо аргумент не вказано, повертається
0.0
.Examples:
>>> float('+1.23') 1.23 >>> float(' -12345\n') -12345.0 >>> float('1e-003') 0.001 >>> float('+1E6') 1000000.0 >>> float('-Infinity') -inf
Тип float описано в Числові типи — int, float, complex.
Змінено в версії 3.6: Допускається групування цифр із підкресленням, як у кодових літералах.
Змінено в версії 3.7: x is now a positional-only parameter.
Змінено в версії 3.8: Falls back to
__index__()
if__float__()
is not defined.
-
format
(value[, format_spec])¶ Convert a value to a «formatted» representation, as controlled by format_spec. The interpretation of format_spec will depend on the type of the value argument, however there is a standard formatting syntax that is used by most built-in types: Міні-мова специфікації формату.
За замовчуванням format_spec є порожнім рядком, який зазвичай дає той самий ефект, що й виклик
str(value)
.A call to
format(value, format_spec)
is translated totype(value).__format__(value, format_spec)
which bypasses the instance dictionary when searching for the value’s__format__()
method. ATypeError
exception is raised if the method search reachesobject
and the format_spec is non-empty, or if either the format_spec or the return value are not strings.Змінено в версії 3.4:
object().__format__(format_spec)
викликаєTypeError
, якщо format_spec не є порожнім рядком.
-
class
frozenset
([iterable]) Повертає новий об’єкт
frozenset
, необов’язково з елементами, взятими з iterable.frozenset
є вбудованим класом. Перегляньтеfrozenset
і Типи наборів — set, frozenset для документації про цей клас.Для інших контейнерів перегляньте вбудовані класи
set
,list
,tuple
іdict
, а також модульcollections
.
-
getattr
(object, name[, default])¶ Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For example,
getattr(x, 'foobar')
is equivalent tox.foobar
. If the named attribute does not exist, default is returned if provided, otherwiseAttributeError
is raised.Примітка
Оскільки викривлення приватного імені відбувається під час компіляції, потрібно вручну спотворити ім’я приватного атрибута (атрибути з двома символами підкреслення на початку), щоб отримати його за допомогою
getattr()
.
-
globals
()¶ Повертає словник, що реалізує поточний простір імен модуля. Для коду всередині функцій це значення встановлюється під час визначення функції та залишається незмінним незалежно від місця виклику функції.
-
hasattr
(object, name)¶ Аргументами є об’єкт і рядок. Результатом є
True
, якщо рядок є назвою одного з атрибутів об’єкта,False
, якщо ні. (Це реалізується шляхом викликуgetattr(object, name)
і перевірки, чи викликає цеAttributeError
чи ні.)
-
hash
(object)¶ Повертає хеш-значення об’єкта (якщо воно є). Хеш-значення є цілими числами. Вони використовуються для швидкого порівняння ключів словника під час пошуку в словнику. Числові значення, які порівнюються, мають однакове хеш-значення (навіть якщо вони мають різні типи, як у випадку 1 і 1.0).
Примітка
For objects with custom
__hash__()
methods, note thathash()
truncates the return value based on the bit width of the host machine. See__hash__()
for details.
-
help
([object])¶ Виклик вбудованої довідкової системи. (Ця функція призначена для інтерактивного використання.) Якщо аргумент не задано, інтерактивна довідкова система запускається на консолі інтерпретатора. Якщо аргументом є рядок, то цей рядок шукається як ім’я модуля, функції, класу, методу, ключового слова чи розділу документації, а на консолі друкується довідкова сторінка. Якщо аргументом є об’єкт будь-якого іншого типу, для цього об’єкта буде створено сторінку довідки.
Note that if a slash(/) appears in the parameter list of a function, when invoking
help()
, it means that the parameters prior to the slash are positional-only. For more info, see the FAQ entry on positional-only parameters.Ця функція додається до вбудованого простору імен модулем
site
.
-
hex
(x)¶ Convert an integer number to a lowercase hexadecimal string prefixed with «0x». If x is not a Python
int
object, it has to define an__index__()
method that returns an integer. Some examples:>>> hex(255) '0xff' >>> hex(-42) '-0x2a'
Якщо ви хочете перетворити ціле число у верхній або нижній шістнадцятковий рядок із префіксом або без нього, ви можете скористатися одним із наведених нижче способів:
>>> '%#x' % 255, '%x' % 255, '%X' % 255 ('0xff', 'ff', 'FF') >>> format(255, '#x'), format(255, 'x'), format(255, 'X') ('0xff', 'ff', 'FF') >>> f'{255:#x}', f'{255:x}', f'{255:X}' ('0xff', 'ff', 'FF')
Дивіться також
format()
для отримання додаткової інформації.Дивіться також
int()
для перетворення шістнадцяткового рядка в ціле число за основою 16.Примітка
Щоб отримати шістнадцяткове представлення рядка для float, використовуйте метод
float.hex()
.
-
id
(object)¶ Повернути «ідентичність» об’єкта. Це ціле число, яке гарантовано буде унікальним і постійним для цього об’єкта протягом усього його існування. Два об’єкти з що існують у різні проміжки часу можуть мати однакові значення
id()
.CPython implementation detail: This is the address of the object in memory.
Викликає подію аудиту
builtins.id
з аргументомid
.
-
input
([prompt])¶ Якщо присутній аргумент prompt, він записується в стандартний вивід без символу нового рядка. Потім функція зчитує рядок із вхідних даних, перетворює його на рядок (вилучаючи кінцевий новий рядок) і повертає його. Під час читання EOF виникає
EOFError
. Приклад:>>> s = input('--> ') --> Monty Python's Flying Circus >>> s "Monty Python's Flying Circus"
Якщо модуль
readline
було завантажено, тоinput()
використовуватиме його для забезпечення складних функцій редагування рядка та історії.Викликає подію аудиту
builtins.input
з аргументомprompt
перед читанням введенняRaises an auditing event
builtins.input/result
with the result after successfully reading input.
-
class
int
([x])¶ -
class
int
(x, base=10) Return an integer object constructed from a number or string x, or return
0
if no arguments are given. If x defines__int__()
,int(x)
returnsx.__int__()
. If x defines__index__()
, it returnsx.__index__()
. If x defines__trunc__()
, it returnsx.__trunc__()
. For floating point numbers, this truncates towards zero.If x is not a number or if base is given, then x must be a string,
bytes
, orbytearray
instance representing an integer literal in radix base. Optionally, the literal can be preceded by+
or-
(with no space in between) and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, witha
toz
(orA
toZ
) having values 10 to 35. The default base is 10. The allowed values are 0 and 2–36. Base-2, -8, and -16 literals can be optionally prefixed with0b
/0B
,0o
/0O
, or0x
/0X
, as with integer literals in code. Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so thatint('010', 0)
is not legal, whileint('010')
is, as well asint('010', 8)
.Цілочисельний тип описано в Числові типи — int, float, complex.
Змінено в версії 3.4: Якщо base не є екземпляром
int
і об’єкт base має методbase.__index__
, цей метод викликається для отримання цілого числа для бази. У попередніх версіях використовувавсяbase.__int__
замістьbase.__index__
.Змінено в версії 3.6: Допускається групування цифр із підкресленням, як у кодових літералах.
Змінено в версії 3.7: x is now a positional-only parameter.
Змінено в версії 3.8: Falls back to
__index__()
if__int__()
is not defined.Змінено в версії 3.9.14:
int
string inputs and string representations can be limited to help avoid denial of service attacks. AValueError
is raised when the limit is exceeded while converting a string x to anint
or when converting anint
into a string would exceed the limit. See the integer string conversion length limitation documentation.
-
isinstance
(object, classinfo)¶ Return
True
if the object argument is an instance of the classinfo argument, or of a (direct, indirect or virtual) subclass thereof. If object is not an object of the given type, the function always returnsFalse
. If classinfo is a tuple of type objects (or recursively, other such tuples), returnTrue
if object is an instance of any of the types. If classinfo is not a type or tuple of types and such tuples, aTypeError
exception is raised.
-
issubclass
(class, classinfo)¶ Return
True
if class is a subclass (direct, indirect or virtual) of classinfo. A class is considered a subclass of itself. classinfo may be a tuple of class objects (or recursively, other such tuples), in which case returnTrue
if class is a subclass of any entry in classinfo. In any other case, aTypeError
exception is raised.
-
iter
(object[, sentinel])¶ Return an iterator object. The first argument is interpreted very differently depending on the presence of the second argument. Without a second argument, object must be a collection object which supports the iteration protocol (the
__iter__()
method), or it must support the sequence protocol (the__getitem__()
method with integer arguments starting at0
). If it does not support either of those protocols,TypeError
is raised. If the second argument, sentinel, is given, then object must be a callable object. The iterator created in this case will call object with no arguments for each call to its__next__()
method; if the value returned is equal to sentinel,StopIteration
will be raised, otherwise the value will be returned.Дивіться також Типи ітераторів.
Одним із корисних застосувань другої форми
iter()
є створення програми для читання блоків. Наприклад, читання блоків фіксованої ширини з бінарного файлу бази даних до досягнення кінця файлу:from functools import partial with open('mydata.db', 'rb') as f: for block in iter(partial(f.read, 64), b''): process_block(block)
-
len
(s)¶ Повертає довжину (кількість елементів) об’єкта. Аргументом може бути послідовність (наприклад, рядок, байти, кортеж, список або діапазон) або колекція (наприклад, словник, набір або заморожений набір).
CPython implementation detail:
len
викликаєOverflowError
для довжин, більших заsys.maxsize
, наприкладrange(2 ** 100)
.
-
class
list
([iterable]) Замість того, щоб бути функцією,
list
насправді є змінним типом послідовності, як описано в списки і Типи послідовностей — list, tuple, range.
-
locals
()¶ Update and return a dictionary representing the current local symbol table. Free variables are returned by
locals()
when it is called in function blocks, but not in class blocks. Note that at the module level,locals()
andglobals()
are the same dictionary.Примітка
The contents of this dictionary should not be modified; changes may not affect the values of local and free variables used by the interpreter.
-
map
(function, iterable, ...)¶ Return an iterator that applies function to every item of iterable, yielding the results. If additional iterable arguments are passed, function must take that many arguments and is applied to the items from all iterables in parallel. With multiple iterables, the iterator stops when the shortest iterable is exhausted. For cases where the function inputs are already arranged into argument tuples, see
itertools.starmap()
.
-
max
(iterable, *[, key, default])¶ -
max
(arg1, arg2, *args[, key]) Повертає найбільший елемент у ітерації або найбільший з двох чи більше аргументів.
Якщо надається один позиційний аргумент, це має бути iterable. Повертається найбільший елемент ітерації. Якщо надано два або більше позиційних аргументів, повертається найбільший із позиційних аргументів.
Є два необов’язкові аргументи лише для ключових слів. Аргумент key визначає функцію впорядкування з одним аргументом, подібну до тієї, яка використовується для
list.sort()
. Аргумент default визначає об’єкт, який повертається, якщо наданий ітераційний елемент порожній. Якщо iterable порожній і default не вказано, виникаєValueError
.Якщо кілька елементів є максимальними, функція повертає перший знайдений. Це узгоджується з іншими інструментами збереження стабільності сортування, такими як
sorted(iterable, key=keyfunc, reverse=True)[0]
іheapq.nlargest(1, iterable, key=keyfunc)
.Нове в версії 3.4: The default keyword-only argument.
Змінено в версії 3.8: Ключ може бути
None
.
-
class
memoryview
(object) Повертає об’єкт «перегляд пам’яті», створений із заданого аргументу. Перегляньте Перегляди пам’яті для отримання додаткової інформації.
-
min
(iterable, *[, key, default])¶ -
min
(arg1, arg2, *args[, key]) Повертає найменший елемент у ітерації або найменший з двох чи більше аргументів.
Якщо надається один позиційний аргумент, це має бути iterable. Повертається найменший елемент ітерації. Якщо надано два або більше позиційних аргументів, повертається найменший із позиційних аргументів.
Є два необов’язкові аргументи лише для ключових слів. Аргумент key визначає функцію впорядкування з одним аргументом, подібну до тієї, яка використовується для
list.sort()
. Аргумент default визначає об’єкт, який повертається, якщо наданий ітераційний елемент порожній. Якщо iterable порожній і default не вказано, виникаєValueError
.Якщо декілька елементів є мінімальними, функція повертає перший знайдений. Це узгоджується з іншими інструментами збереження стабільності сортування, такими як
sorted(iterable, key=keyfunc)[0]
іheapq.nsmallest(1, iterable, key=keyfunc)
.Нове в версії 3.4: The default keyword-only argument.
Змінено в версії 3.8: Ключ може бути
None
.
-
next
(iterator[, default])¶ Retrieve the next item from the iterator by calling its
__next__()
method. If default is given, it is returned if the iterator is exhausted, otherwiseStopIteration
is raised.
-
class
object
¶ Return a new featureless object.
object
is a base for all classes. It has the methods that are common to all instances of Python classes. This function does not accept any arguments.
-
oct
(x)¶ Convert an integer number to an octal string prefixed with «0o». The result is a valid Python expression. If x is not a Python
int
object, it has to define an__index__()
method that returns an integer. For example:>>> oct(8) '0o10' >>> oct(-56) '-0o70'
If you want to convert an integer number to octal string either with prefix «0o» or not, you can use either of the following ways.
>>> '%#o' % 10, '%o' % 10 ('0o12', '12') >>> format(10, '#o'), format(10, 'o') ('0o12', '12') >>> f'{10:#o}', f'{10:o}' ('0o12', '12')
Дивіться також
format()
для отримання додаткової інформації.
-
open
(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)¶ Відкрийте файл і поверніть відповідний file object. Якщо файл неможливо відкрити, виникає
OSError
. Перегляньте Читання та запис файлів для отримання додаткових прикладів використання цієї функції.file is a path-like object giving the pathname (absolute or relative to the current working directory) of the file to be opened or an integer file descriptor of the file to be wrapped. (If a file descriptor is given, it is closed when the returned I/O object is closed, unless closefd is set to
False
.)mode is an optional string that specifies the mode in which the file is opened. It defaults to
'r'
which means open for reading in text mode. Other common values are'w'
for writing (truncating the file if it already exists),'x'
for exclusive creation and'a'
for appending (which on some Unix systems, means that all writes append to the end of the file regardless of the current seek position). In text mode, if encoding is not specified the encoding used is platform dependent:locale.getpreferredencoding(False)
is called to get the current locale encoding. (For reading and writing raw bytes use binary mode and leave encoding unspecified.) The available modes are:характер
Значення
'r''
відкритий для читання (за замовчуванням)
'w'
відкрити для запису, спочатку скоротивши файл
'x''
відкрити для ексклюзивного створення, якщо файл уже існує
'a'
open for writing, appending to the end of the file if it exists
'b''
двійковий режим
't''
текстовий режим (за замовчуванням)
'+'
відкритий для оновлення (читання та запис)
The default mode is
'r'
(open for reading text, synonym of'rt'
). Modes'w+'
and'w+b'
open and truncate the file. Modes'r+'
and'r+b'
open the file with no truncation.Як згадувалося в Огляд, Python розрізняє двійковий і текстовий ввід-вивід. Файли, відкриті в двійковому режимі (включаючи
'b'
в аргументі mode) повертають вміст як об’єктиbytes
без будь-якого декодування. У текстовому режимі (за замовчуванням або коли't'
включено в аргумент mode) вміст файлу повертається якstr
, байти, які спочатку були декодовані за допомогою платформи -залежне кодування або використання зазначеного кодування, якщо воно вказано.There is an additional mode character permitted,
'U'
, which no longer has any effect, and is considered deprecated. It previously enabled universal newlines in text mode, which became the default behaviour in Python 3.0. Refer to the documentation of the newline parameter for further details.Примітка
Python не залежить від поняття текстових файлів базової операційної системи; вся обробка виконується самим Python, і тому вона не залежить від платформи.
buffering is an optional integer used to set the buffering policy. Pass 0 to switch buffering off (only allowed in binary mode), 1 to select line buffering (only usable in text mode), and an integer > 1 to indicate the size in bytes of a fixed-size chunk buffer. Note that specifying a buffer size this way applies for binary buffered I/O, but
TextIOWrapper
(i.e., files opened withmode='r+'
) would have another buffering. To disable buffering inTextIOWrapper
, consider using thewrite_through
flag forio.TextIOWrapper.reconfigure()
. When no buffering argument is given, the default buffering policy works as follows:Binary files are buffered in fixed-size chunks; the size of the buffer is chosen using a heuristic trying to determine the underlying device’s «block size» and falling back on
io.DEFAULT_BUFFER_SIZE
. On many systems, the buffer will typically be 4096 or 8192 bytes long.«Інтерактивні» текстові файли (файли, для яких
isatty()
повертаєTrue
) використовують буферизацію рядка. Інші текстові файли використовують політику, описану вище для двійкових файлів.
encoding is the name of the encoding used to decode or encode the file. This should only be used in text mode. The default encoding is platform dependent (whatever
locale.getpreferredencoding()
returns), but any text encoding supported by Python can be used. See thecodecs
module for the list of supported encodings.errors — це необов’язковий рядок, який визначає, як мають оброблятися помилки кодування та декодування — це не можна використовувати в двійковому режимі. Доступні різноманітні стандартні обробники помилок (перераховані в Обробники помилок), хоча будь-яка назва обробки помилок, зареєстрована в
codecs.register_error()
, також дійсна. Стандартні назви включають:'strict'
, щоб викликати виключенняValueError
, якщо є помилка кодування. Значення за замовчуванням «Немає» має той самий ефект.'ignore''
ігнорує помилки. Зауважте, що ігнорування помилок кодування може призвести до втрати даних.'replace'
вставляє маркер заміни (наприклад,'?'
), де є неправильно сформовані дані.'surrogateescape'
представлятиме будь-які неправильні байти як одиниці нижнього сурогатного коду в діапазоні від U+DC80 до U+DCFF. Ці одиниці сурогатного коду потім будуть перетворені назад у ті самі байти, коли під час запису даних використовується обробник помилокsurrogateescape
. Це корисно для обробки файлів у невідомому кодуванні.'xmlcharrefreplace'
is only supported when writing to a file. Characters not supported by the encoding are replaced with the appropriate XML character reference&#nnn;
.'backslashreplace'
замінює некоректні дані керуючими послідовностями Python зі зворотною похилою рискою.'namereplace'
(також підтримується лише під час запису) замінює непідтримувані символи\N{...}
керуючими послідовностями.
newline controls how universal newlines mode works (it only applies to text mode). It can be
None
,''
,'\n'
,'\r'
, and'\r\n'
. It works as follows:Під час читання вхідних даних із потоку, якщо новий рядок має значення
None
, увімкнено універсальний режим нових рядків. Рядки у вхідних даних можуть закінчуватися на'\n'
,'\r'
або'\r\n'
, і вони перекладаються на'\n'
перед поверненням до абонента. Якщо це''
, універсальний режим нових рядків увімкнено, але закінчення рядків повертаються абоненту без перекладу. Якщо він має будь-яке з інших дозволених значень, рядки введення завершуються лише заданим рядком, а закінчення рядка повертається до викликаючого без перекладу.Під час запису вихідних даних у потік, якщо новий рядок має значення
None
, будь-які записані символи'\n'
переводяться в системний роздільник рядків за умовчанням,os.linesep
. Якщо новий рядок є''
або'\n'
, переклад не відбувається. Якщо новий рядок є будь-яким іншим допустимим значенням, будь-які написані символи'\n'
переводяться в заданий рядок.
If closefd is
False
and a file descriptor rather than a filename was given, the underlying file descriptor will be kept open when the file is closed. If a filename is given closefd must beTrue
(the default) otherwise an error will be raised.Спеціальний відкривач можна використовувати, передавши виклик як opener. Базовий файловий дескриптор для об’єкта файлу потім отримується шляхом виклику opener за допомогою (file, flags). opener має повертати дескриптор відкритого файлу (передача
os.open
як opener призводить до функціональності, подібної до передачіNone
).Щойно створений файл не успадковується.
У наступному прикладі використовується параметр dir_fd функції
os.open()
для відкриття файлу відносно заданого каталогу:>>> import os >>> dir_fd = os.open('somedir', os.O_RDONLY) >>> def opener(path, flags): ... return os.open(path, flags, dir_fd=dir_fd) ... >>> with open('spamspam.txt', 'w', opener=opener) as f: ... print('This will be written to somedir/spamspam.txt', file=f) ... >>> os.close(dir_fd) # don't leak a file descriptor
Тип об’єкта file object, який повертає функція
open()
, залежить від режиму. Колиopen()
використовується для відкриття файлу в текстовому режимі ('w'
,'r'
,'wt'
,'rt'
, тощо), він повертає підкласio.TextIOBase
(зокремаio.TextIOWrapper
). Коли файл використовується для відкриття файлу в бінарному режимі з буферизацією, повертається клас є підкласомio.BufferedIOBase
. Точний клас різниться: у бінарному режимі читання він повертаєio.BufferedReader
; у двійкових режимах запису та додавання повертаєio.BufferedWriter
, а в режимі читання/запису повертаєio.BufferedRandom
. Коли буферизацію вимкнено, повертається необроблений потік, підкласio.RawIOBase
,io.FileIO
.See also the file handling modules, such as,
fileinput
,io
(whereopen()
is declared),os
,os.path
,tempfile
, andshutil
.Raises an auditing event
open
with argumentsfile
,mode
,flags
.Аргументи
mode
іflags
могли бути змінені або виведені з початкового виклику.Змінено в версії 3.3:Додано параметр opener.
Додано режим
'x
.FileExistsError
тепер викликається, якщо файл, відкритий у монопольному режимі створення ('x'
), уже існує.
Змінено в версії 3.4:Тепер файл не успадковується.
Deprecated since version 3.4, will be removed in version 3.10: The
'U'
mode.Змінено в версії 3.5:Якщо системний виклик перервано, а обробник сигналу не викликає виключення, функція тепер повторює системний виклик замість того, щоб викликати виняток
InterruptedError
(перегляньте PEP 475 для обґрунтування).Додано обробник помилок
'namereplace'
.
Змінено в версії 3.6:Додано підтримку прийняття об’єктів, що реалізують
os.PathLike
.У Windows відкриття буфера консолі може повернути підклас
io.RawIOBase
, відмінний відio.FileIO
.
-
ord
(c)¶ Дано рядок, що представляє один символ Unicode, повертає ціле число, що представляє код Unicode цього символу. Наприклад,
ord('a')
повертає ціле число97
,ord('€')
(знак євро) повертає8364
. Це зворотне доchr()
.
-
pow
(base, exp[, mod])¶ Повернути base до потужності exp; якщо присутній mod, повертає base до ступеня exp, за модулем mod (обчислюється ефективніше, ніж
pow(base, exp) % mod
). Форма з двома аргументамиpow(base, exp)
еквівалентна використанню оператора ступеня:base**exp
.The arguments must have numeric types. With mixed operand types, the coercion rules for binary arithmetic operators apply. For
int
operands, the result has the same type as the operands (after coercion) unless the second argument is negative; in that case, all arguments are converted to float and a float result is delivered. For example,pow(10, 2)
returns100
, butpow(10, -2)
returns0.01
. For a negative base of typeint
orfloat
and a non-integral exponent, a complex result is delivered. For example,pow(-9, 0.5)
returns a value close to3j
.Для
int
операндів base і exp, якщо присутній mod, mod також має бути цілого типу, а mod має бути ненульовим. Якщо mod присутній і exp від’ємний, base має бути відносно простим до mod. У цьому випадку повертаєтьсяpow(inv_base, -exp, mod)
, де inv_base є оберненим до base за модулем mod.Ось приклад обчислення оберненого числа для
38
за модулем97
:>>> pow(38, -1, mod=97) 23 >>> 23 * 38 % 97 == 1 True
Змінено в версії 3.8: Для операндів
int
форма з трьома аргументамиpow
тепер дозволяє другому аргументу бути від’ємним, що дозволяє обчислювати модульні обернені.Змінено в версії 3.8: Дозволити аргументи ключових слів. Раніше підтримувалися лише позиційні аргументи.
-
print
(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)¶ Print objects to the text stream file, separated by sep and followed by end. sep, end, file and flush, if present, must be given as keyword arguments.
Усі аргументи, не пов’язані з ключовими словами, перетворюються на рядки, як це робить
str()
, і записуються в потік, розділені символом sep і після нього end. І sep, і end повинні бути рядками; вони також можуть бутиNone
, що означає використання стандартних значень. Якщо об’єктів не надано,print()
просто напише end.Аргумент file має бути об’єктом із методом
write(string)
; якщо його немає абоNone
, буде використаноsys.stdout
. Оскільки надруковані аргументи перетворюються на текстові рядки,print()
не можна використовувати з об’єктами файлу двійкового режиму. Для цього замість цього використовуйтеfile.write(...)
.Whether output is buffered is usually determined by file, but if the flush keyword argument is true, the stream is forcibly flushed.
Змінено в версії 3.3: Додано аргумент ключового слова flush.
-
class
property
(fget=None, fset=None, fdel=None, doc=None)¶ Повертає атрибут властивості.
fget — це функція для отримання значення атрибута. fset — це функція для встановлення значення атрибута. fdel — це функція для видалення значення атрибута. А doc створює рядок документації для атрибута.
Типовим використанням є визначення керованого атрибута
x
:class C: def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del self._x x = property(getx, setx, delx, "I'm the 'x' property.")
If c is an instance of C,
c.x
will invoke the getter,c.x = value
will invoke the setter anddel c.x
the deleter.Якщо вказано, doc буде рядком документації атрибута властивості. В іншому випадку властивість скопіює рядок документа fget (якщо він існує). Це дає змогу легко створювати властивості лише для читання, використовуючи
property()
як decorator:class Parrot: def __init__(self): self._voltage = 100000 @property def voltage(self): """Get the current voltage.""" return self._voltage
The
@property
decorator turns thevoltage()
method into a «getter» for a read-only attribute with the same name, and it sets the docstring for voltage to «Get the current voltage.»A property object has
getter
,setter
, anddeleter
methods usable as decorators that create a copy of the property with the corresponding accessor function set to the decorated function. This is best explained with an example:class C: def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x
Цей код точно еквівалентний першому прикладу. Обов’язково дайте додатковим функціям те саме ім’я, що й початкова властивість (у цьому випадку
x
).Повернений об’єкт властивості також має атрибути
fget
,fset
іfdel
, що відповідають аргументам конструктора.Змінено в версії 3.5: Рядки документації об’єктів властивості тепер доступні для запису.
-
class
range
(stop) -
class
range
(start, stop[, step]) Замість того, щоб бути функцією,
range
насправді є незмінним типом послідовності, як описано в діапазони і Типи послідовностей — list, tuple, range.
-
repr
(object)¶ Return a string containing a printable representation of an object. For many types, this function makes an attempt to return a string that would yield an object with the same value when passed to
eval()
, otherwise the representation is a string enclosed in angle brackets that contains the name of the type of the object together with additional information often including the name and address of the object. A class can control what this function returns for its instances by defining a__repr__()
method.
-
reversed
(seq)¶ Return a reverse iterator. seq must be an object which has a
__reversed__()
method or supports the sequence protocol (the__len__()
method and the__getitem__()
method with integer arguments starting at0
).
-
round
(number[, ndigits])¶ Повертає число, округлене до nцифр з точністю після коми. Якщо ndigits опущено або має значення
None
, він повертає найближче ціле число до вхідних даних.For the built-in types supporting
round()
, values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice (so, for example, bothround(0.5)
andround(-0.5)
are0
, andround(1.5)
is2
). Any integer value is valid for ndigits (positive, zero, or negative). The return value is an integer if ndigits is omitted orNone
. Otherwise the return value has the same type as number.Для загального об’єкта Python
number
round
делегуєnumber.__round__
.Примітка
Поведінка
round()
для числа з плаваючою точкою може бути несподіваною: наприклад,round(2.675, 2)
дає2.67
замість очікуваного2.68
. Це не помилка: це результат того факту, що більшість десяткових дробів не можна представити точно як число з плаваючою точкою. Перегляньте Floating Point Arithmetic: Issues and Limitations для отримання додаткової інформації.
-
class
set
([iterable]) Повертає новий об’єкт
set
, необов’язково з елементами, взятими з iterable.набір
є вбудованим класом. Перегляньтеset
і Типи наборів — set, frozenset для документації про цей клас.Для інших контейнерів перегляньте вбудовані класи
frozenset
,list
,tuple
іdict
, а також модульcollections
.
-
setattr
(object, name, value)¶ This is the counterpart of
getattr()
. The arguments are an object, a string and an arbitrary value. The string may name an existing attribute or a new attribute. The function assigns the value to the attribute, provided the object allows it. For example,setattr(x, 'foobar', 123)
is equivalent tox.foobar = 123
.Примітка
Оскільки викривлення приватного імені відбувається під час компіляції, потрібно вручну спотворити ім’я приватного атрибута (атрибути з двома символами підкреслення на початку), щоб встановити його за допомогою
setattr()
.
-
class
slice
(stop)¶ -
class
slice
(start, stop[, step]) Return a slice object representing the set of indices specified by
range(start, stop, step)
. The start and step arguments default toNone
. Slice objects have read-only data attributesstart
,stop
andstep
which merely return the argument values (or their default). They have no other explicit functionality; however they are used by NumPy and other third party packages. Slice objects are also generated when extended indexing syntax is used. For example:a[start:stop:step]
ora[start:stop, i]
. Seeitertools.islice()
for an alternate version that returns an iterator.
-
sorted
(iterable, /, *, key=None, reverse=False)¶ Повертає новий відсортований список з елементів у iterable.
Має два необов’язкові аргументи, які необхідно вказати як аргументи ключового слова.
key визначає функцію одного аргументу, яка використовується для отримання ключа порівняння з кожного елемента в iterable (наприклад,
key=str.lower
). Значення за замовчуванням –None
(пряме порівняння елементів).reverse — це логічне значення. Якщо встановлено значення
True
, елементи списку сортуються так, ніби кожне порівняння було зворотним.Використовуйте
functools.cmp_to_key()
, щоб перетворити функцію cmp старого стилю на функцію key.Вбудована функція
sorted()
гарантовано буде стабільною. Сортування є стабільним, якщо воно гарантує відсутність зміни відносного порядку порівнюваних рівних елементів — це корисно для сортування за кілька проходів (наприклад, сортування за відділом, а потім за ступенем заробітної плати).Алгоритм сортування використовує лише
<
comparisons between items. While defining an__lt__()
method will suffice for sorting, PEP 8 recommends that all six rich comparisons. Це допоможе уникнути помилок під час використання тих самих даних з іншими інструментами впорядкування, такими якmax()
, які покладаються на інший базовий метод. Реалізація всіх шести порівнянь також допомагає уникнути плутанини для порівнянь змішаного типу, які можуть викликати відображений метод__gt__()
.Приклади сортування та короткий посібник із сортування див. Sorting HOW TO.
-
@
staticmethod
¶ Перетворення методу в статичний метод.
Статичний метод не отримує неявний перший аргумент. Щоб оголосити статичний метод, використовуйте цю ідіому:
class C: @staticmethod def f(arg1, arg2, ...): ...
Форма
@staticmethod
є функцією decorator – подробиці див. Визначення функцій.A static method can be called either on the class (such as
C.f()
) or on an instance (such asC().f()
).Static methods in Python are similar to those found in Java or C++. Also see
classmethod()
for a variant that is useful for creating alternate class constructors.Як і в усіх декораторах, також можна викликати
staticmethod
як звичайну функцію та щось робити з його результатом. Це необхідно в деяких випадках, коли вам потрібно посилання на функцію з тіла класу, і ви хочете уникнути автоматичного перетворення в метод екземпляра. Для цих випадків використовуйте цю ідіому:class C: builtin_open = staticmethod(open)
Для отримання додаткової інформації про статичні методи див. Стандартна ієрархія типів.
-
class
str
(object='') -
class
str
(object=b'', encoding='utf-8', errors='strict') Повертає
str
версію object. Дивітьсяstr()
для деталей.str
— це вбудований рядок class. Щоб отримати загальну інформацію про рядки, перегляньте Тип текстової послідовності — str.
-
sum
(iterable, /, start=0)¶ Сумує start і елементи iterable зліва направо та повертає підсумок. Елементи iterable зазвичай є числами, а початкове значення не може бути рядком.
For some use cases, there are good alternatives to
sum()
. The preferred, fast way to concatenate a sequence of strings is by calling''.join(sequence)
. To add floating point values with extended precision, seemath.fsum()
. To concatenate a series of iterables, consider usingitertools.chain()
.Змінено в версії 3.8: Параметр start можна вказати як аргумент ключового слова.
-
super
([type[, object-or-type]])¶ Повертає проксі-об’єкт, який делегує виклики методу батьківському або рідному класу типу. Це корисно для доступу до успадкованих методів, які були перевизначені в класі.
The object-or-type determines the method resolution order to be searched. The search starts from the class right after the type.
For example, if
__mro__
of object-or-type isD -> B -> C -> A -> object
and the value of type isB
, thensuper()
searchesC -> A -> object
.The
__mro__
attribute of the object-or-type lists the method resolution search order used by bothgetattr()
andsuper()
. The attribute is dynamic and can change whenever the inheritance hierarchy is updated.Якщо другий аргумент опущено, повернутий супероб’єкт не зв’язаний. Якщо другий аргумент є об’єктом,
isinstance(obj, type)
має бути істинним. Якщо другий аргумент є типом,issubclass(type2, type)
має бути істинним (це корисно для методів класу).Є два типових випадки використання super. В ієрархії класів з єдиним успадкуванням super можна використовувати для посилання на батьківські класи, не вказуючи їх явно, що робить код більш придатним для обслуговування. Це використання дуже схоже на використання super в інших мовах програмування.
Другий варіант використання — це підтримка кооперативного множинного успадкування в динамічному середовищі виконання. Цей варіант використання унікальний для Python і не зустрічається в статично скомпільованих мовах або мовах, які підтримують лише одне успадкування. Це дає змогу реалізувати «діамантові діаграми», де кілька базових класів реалізують один і той же метод. Хороший дизайн вимагає, щоб такі реалізації мали однакову сигнатуру виклику в кожному випадку (оскільки порядок викликів визначається під час виконання, оскільки цей порядок адаптується до змін в ієрархії класів, і оскільки цей порядок може включати однотипні класи, які невідомі до виконання ).
Для обох випадків типовий виклик суперкласу виглядає так:
class C(B): def method(self, arg): super().method(arg) # This does the same thing as: # super(C, self).method(arg)
Окрім пошуку методів,
super()
також працює для пошуку атрибутів. Одним із можливих варіантів використання цього є виклик дескрипторів у батьківському або рідному класі.Note that
super()
is implemented as part of the binding process for explicit dotted attribute lookups such assuper().__getitem__(name)
. It does so by implementing its own__getattribute__()
method for searching classes in a predictable order that supports cooperative multiple inheritance. Accordingly,super()
is undefined for implicit lookups using statements or operators such assuper()[name]
.Також зауважте, що, окрім форми нульового аргументу,
super()
не обмежується використанням внутрішніх методів. Форма з двома аргументами точно визначає аргументи та робить відповідні посилання. Форма нульового аргументу працює лише всередині визначення класу, оскільки компілятор заповнює необхідні деталі для правильного отримання визначеного класу, а також для доступу до поточного екземпляра для звичайних методів.Щоб отримати практичні поради щодо створення кооперативних класів за допомогою
super()
, перегляньте посібник із використання super().
-
class
tuple
([iterable]) Замість того, щоб бути функцією,
tuple
насправді є незмінним типом послідовності, як описано в Кортежі і Типи послідовностей — list, tuple, range.
-
class
type
(object)¶ -
class
type
(name, bases, dict, **kwds) With one argument, return the type of an object. The return value is a type object and generally the same object as returned by
object.__class__
.Для перевірки типу об’єкта рекомендується використовувати вбудовану функцію
isinstance()
, оскільки вона враховує підкласи.With three arguments, return a new type object. This is essentially a dynamic form of the
class
statement. The name string is the class name and becomes the__name__
attribute. The bases tuple contains the base classes and becomes the__bases__
attribute; if empty,object
, the ultimate base of all classes, is added. The dict dictionary contains attribute and method definitions for the class body; it may be copied or wrapped before becoming the__dict__
attribute. The following two statements create identicaltype
objects:>>> class X: ... a = 1 ... >>> X = type('X', (), dict(a=1))
See also Об’єкти типу.
Аргументи ключових слів, надані у формі з трьома аргументами, передаються у відповідний механізм метакласу (зазвичай
__init_subclass__()
) так само, як ключові слова у визначенні класу (крім metaclass).Дивіться також Налаштування створення класу.
Змінено в версії 3.6: Subclasses of
type
which don’t overridetype.__new__
may no longer use the one-argument form to get the type of an object.
-
vars
([object])¶ Return the
__dict__
attribute for a module, class, instance, or any other object with a__dict__
attribute.Objects such as modules and instances have an updateable
__dict__
attribute; however, other objects may have write restrictions on their__dict__
attributes (for example, classes use atypes.MappingProxyType
to prevent direct dictionary updates).Without an argument,
vars()
acts likelocals()
. Note, the locals dictionary is only useful for reads since updates to the locals dictionary are ignored.Виняток
TypeError
виникає, якщо об’єкт указано, але він не має атрибута__dict__
(наприклад, якщо його клас визначає__slots__
атрибут).
-
zip
(*iterables)¶ Make an iterator that aggregates elements from each of the iterables.
Returns an iterator of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. The iterator stops when the shortest input iterable is exhausted. With a single iterable argument, it returns an iterator of 1-tuples. With no arguments, it returns an empty iterator. Equivalent to:
def zip(*iterables): # zip('ABCD', 'xy') --> Ax By sentinel = object() iterators = [iter(it) for it in iterables] while iterators: result = [] for it in iterators: elem = next(it, sentinel) if elem is sentinel: return result.append(elem) yield tuple(result)
The left-to-right evaluation order of the iterables is guaranteed. This makes possible an idiom for clustering a data series into n-length groups using
zip(*[iter(s)]*n)
. This repeats the same iteratorn
times so that each output tuple has the result ofn
calls to the iterator. This has the effect of dividing the input into n-length chunks.zip()
should only be used with unequal length inputs when you don’t care about trailing, unmatched values from the longer iterables. If those values are important, useitertools.zip_longest()
instead.zip()
у поєднанні з оператором*
можна використовувати для розпакування списку:>>> x = [1, 2, 3] >>> y = [4, 5, 6] >>> zipped = zip(x, y) >>> list(zipped) [(1, 4), (2, 5), (3, 6)] >>> x2, y2 = zip(*zip(x, y)) >>> x == list(x2) and y == list(y2) True
-
__import__
(name, globals=None, locals=None, fromlist=(), level=0)¶ Примітка
Це розширена функція, яка не потрібна в повсякденному програмуванні на Python, на відміну від
importlib.import_module()
.Ця функція викликається оператором
import
. Його можна замінити (імпортувавши модульbuiltins
і призначившиbuiltins.__import__
), щоб змінити семантику оператораimport
, але це настійно не рекомендується, оскільки зазвичай простіше використовувати перехоплювачі імпорту (див. PEP 302) для досягнення тих самих цілей і не викликає проблем із кодом, який припускає, що використовується реалізація імпорту за замовчуванням. Пряме використання__import__()
також не рекомендується на користьimportlib.import_module()
.The function imports the module name, potentially using the given globals and locals to determine how to interpret the name in a package context. The fromlist gives the names of objects or submodules that should be imported from the module given by name. The standard implementation does not use its locals argument at all, and uses its globals only to determine the package context of the
import
statement.рівень визначає, чи використовувати абсолютний чи відносний імпорт.
0
(за замовчуванням) означає виконання лише абсолютного імпорту. Позитивні значення для level вказують на кількість батьківських каталогів для пошуку відносно каталогу модуля, який викликає__import__()
(див. PEP 328 для деталей).Якщо змінна name має форму
package.module
, зазвичай повертається пакет верхнього рівня (ім’я до першої крапки), а не модуль, названий name. Однак, якщо вказано непорожній аргумент fromlist, повертається модуль, названий name.Наприклад, оператор
import spam
призводить до байт-коду, схожого на такий код:spam = __import__('spam', globals(), locals(), [], 0)
Інструкція
import spam.ham
призводить до цього виклику:spam = __import__('spam.ham', globals(), locals(), [], 0)
Зверніть увагу, як
__import__()
повертає тут модуль верхнього рівня, оскільки це об’єкт, який прив’язаний до імені операторомimport
.З іншого боку, заява
from spam.ham import eggs, sausage as saus
призводить до:_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0) eggs = _temp.eggs saus = _temp.sausage
Тут модуль
spam.ham
повертається з__import__()
. З цього об’єкта витягуються імена для імпорту та призначаються їх відповідні імена.Якщо ви просто хочете імпортувати модуль (можливо, у пакеті) за назвою, використовуйте
importlib.import_module()
.Змінено в версії 3.3: Від’ємні значення для рівня більше не підтримуються (що також змінює значення за замовчуванням на 0).
Змінено в версії 3.9: Коли використовуються параметри командного рядка
-E
або-I
, змінна середовищаPYTHONCASEOK
ігнорується.
Примітки
- 1
Зауважте, що синтаксичний аналізатор приймає символ кінця рядка лише в стилі Unix. Якщо ви читаєте код з файлу, обов’язково використовуйте режим перетворення нового рядка для перетворення символів нового рядка з Windows або Mac.