Перевод взят из официального документа:исходный адрес
Интерпретатор Python имеет множество встроенных функций и типов, которые перечислены ниже (в алфавитном порядке) (не считая тех, которые я не использовал или использую редко).
| - | - | встроенная таблица функций | - | - |
|---|---|---|---|---|
| abs() | delattr() | hash() | memoryview() | set() |
| all() | dict() | help() | min() | setattr() |
| any() | dir() | hex() | next() | slice() |
| ascii() | divmod() | id() | object() | sorted() |
| bin() | enumerate() | input() | oct() | staticmethod() |
| bool() | eval() | int() | open() | str() |
| breakpoint() | exec() | isinstance() | ord() | sum() |
| bytearray() | filter() | issubclass() | pow() | super() |
| bytes() | float() | iter() | print() | tuple() |
| callable() | format() | len() | property() | type() |
| chr() | frozenset() | list() | range() | vars() |
| classmethod() | getattr() | locals() | repr() | zip() |
| compile() | globals() | map() | reversed() | __import__() |
| complex() | hasattr() | max() | round() |
abs(x)
Возвращает абсолютное значение числа. Аргументы могут быть целыми числами или числами с плавающей запятой. Если аргумент представляет собой комплексное число, возвращается его модуль.
all(iterable)
еслиiterableвсе элементы имеют значение True (илиiterableпусто), вернутьTrue. эквивалентно:
def all(iterable):
for element in iterable:
if not element:
return False
return True
any(iterable)
еслиiterableЕсли какой-либо элемент истинен, вернутьTrue. еслиiterableВозвращаетFalse. эквивалентно:
def any(iterable):
for element in iterable:
if element:
return True
return False
ascii(object)
похожийrepr(), который возвращает строку, содержащую печатное представление объекта, но с использованием\x,\uили\UЭкранирующий символ экранируетсяrepr()Символы, отличные от ASCII, в возвращаемой строке. Это создаетrepr()Возвращаемая строка.
In [1]: s = 'python \n 中文'
In [2]: ascii(s)
Out[2]: "'python \\n \\u4e2d\\u6587'"
In [3]: repr(s)
Out[3]: "'python \\n 中文'"
bin(x)
Преобразуйте целое число в двоичную строку с префиксом «0b». Результатом является допустимое выражение Python. еслиxне python.intобъект, вы должны определить возвращаемое целое число__index __()метод. Некоторые примеры:
>>> bin(3)
'0b11'
>>> bin(-10)
'-0b1010'
Необходимость префикса «0b» можно контролировать любым из следующих способов:
>>> format(14, '#b'), format(14, 'b')
('0b1110', '1110')
>>> f'{14:#b}', f'{14:b}'
('0b1110', '1110')
Для получения дополнительной информации см. такжеformat().
когдаxнетintвведите время
In [1]: class Test:
...: def __init__(self, n):
...: self.n = n
...:
...: def __index__(self):
...: return self.n
...:
In [2]: t = Test(10)
In [3]: bin(t)
Out[3]: '0b1010'
class bool([x])
возвращает логическое значение, т.е.TrueилиFalseодин из. х использовать стандартпроверка правдыдля преобразования. Возвращает, если x ложно или опущеноFalse; иначе возвратTrue. логический типintподкласс . Он не может быть далее подклассифицирован. Его единственный экземплярFalseиTrue.
class bytearray([source[, encoding[, errors]]])
Возвращает новый массив байтов. Класс bytearray представляет собой0 <= x < 256Изменяемая последовательность целых чисел в диапазоне.
по желаниюsourceПараметры могут инициализировать массив несколькими различными способами:
- Если это строка, ей также должен быть задан параметр кодировки (и, возможно, ошибки);
bytearray()использоватьstr.encode()Преобразование строки в байты. - Если это целое число, оно принимается за длину массива и инициализируется нулевыми байтами.
- Если это объект, соответствующий интерфейсу буфера, массив байтов будет инициализирован буфером объекта только для чтения.
- Если это итерируемый объект, он должен быть
0 <= x <256Диапазон итераций, они будут использоваться как начальное содержимое массива.
Параметров нет, создается массив размера.
In [11]: bytearray(5)
Out[11]: bytearray(b'\x00\x00\x00\x00\x00')
In [12]: bytearray([23, 32, 4, 67, 9, 96, 123])
Out[12]: bytearray(b'\x17 \x04C\t`{')
In [13]: bytearray()
Out[13]: bytearray(b'')
class bytes([source[, encoding[, errors]]])
Возвращает новый объект "bytes", который является0 <= x <256Последовательность неизменяемых целых чисел в диапазоне.bytesдаbytearrayнеизменяемая версия — она имеет те же неизменяющие методы и такое же поведение при индексации и нарезке.
Поэтому для объяснения параметров конструктора см.bytearray().
字节对象也可以使用文字创建。 ВидетьСтроковые и байтовые литералы.
callable(object)
Возвращает, если параметр объекта вызываетсяTrue, иначе возвратFalse. Если он возвращает истину, вызов по-прежнему может завершиться ошибкой, но если он ложен, вызов объекта никогда не будет успешным. Обратите внимание, что классы можно вызывать (вызов класса возвращает новый экземпляр); если класс имеет__call __()метод, экземпляр может быть вызван.
Новые функции в версии 3.2: Эта функция сначала удаляется в Python 3.0, а затем восстанавливается в Python 3.2.
In [19]: a = 1
In [20]: callable(a)
Out[20]: False
In [21]: def func():
...: pass
...:
In [22]: callable(func)
Out[22]: True
In [23]: class A:
...: pass
...:
In [24]: a = A()
In [25]: callable(a)
Out[25]: False
In [26]: class A:
...: def __call__(self, *args, **kwargs):
...: pass
...:
In [27]: a = A()
In [28]: callable(a)
Out[28]: True
chr(i)
返回表示 Unicode 代码点为整数 i 的字符的字符串。 Например,chr(97)возвращаемая строка'a',иchr(8364)возвращаемая строка'€'. Этоord()обратный процесс.
Допустимый диапазон для параметра — от 0 до 1 114 111 (0x10FFFF на основе 16). Если этот диапазон превышен, будет выброшено ValueError.
@classmethod
Метод преобразования является методом класса.
Методы класса получают класс в качестве первого параметра (неявно), точно так же, как методы экземпляра получают экземпляр. Чтобы объявить метод класса, идиома выглядит следующим образом:
class C:
@classmethod
def f(cls, arg1, arg2, ...): ...
!> Примечание: методы класса и статические методы — это не одно и то же.
class complex([real[, imag]])
Возвращает комплексное число, значение которого равно вещественному + imag*1j, или преобразует строку или число в комплексное число. Если первым аргументом является строка, она будет интерпретирована как комплексное число, и функция должна вызываться без второго аргумента. Второй параметр не может быть строкой. Каждый параметр может иметь любой числовой тип (включая комплексные числа). Если imag опущен, по умолчанию он будет равен нулю, а конструктор используется для числовых преобразований, таких как int и float. Возвращает 0j, если оба аргумента опущены.
!> При преобразовании из строки строка не должна находиться в+или-Включите пробелы вокруг операторов. Например,complex('1+2j')хорошо, ноcomplex('1 + 2j')вызоветValueError.
delattr(object, name)
Аргументами являются объект и строка. Строка должна быть именем одного из свойств объекта. Эта функция удаляет указанное свойство (если это разрешено объектом). Например,delattr(x, 'foobar')Эквивалентноdel x.foobar.
dict
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
Создать новый словарь
In [38]: dict(name='jack',age=18)
Out[38]: {'name': 'jack', 'age': 18}
In [39]: dict({'name': 'jack'}, age=18)
Out[39]: {'name': 'jack', 'age': 18}
In [40]: dict([('name', 'jack'),('age', 18)])
Out[40]: {'name': 'jack', 'age': 18}
dir([object])
Попробуйте вернуть список допустимых атрибутов объекта. Если параметры отсутствуют, возвращается текущий список имени локальной области.
Если объект вызвал__dir__()метод, этот метод будет вызываться и должен возвращать список свойств. Это позволяет реализовать пользовательские__getattr__()или__getattribute__()Объектная настройка функцийdir()сообщать о его свойствах.
дефолт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']
divmod(a, b)
Принимает два (несложных) числа в качестве аргументов и возвращает пару чисел, состоящую из их частного и остатка при использовании целочисленного деления. При использовании смешанных типов операндов применяются правила для бинарных арифметических операторов. Для целых чисел результат такой же, как(a // b, a % b)такой же. Для чисел с плавающей запятой результат(q, a % b), где q обычноmath.floor(a / b), но может быть меньше 1. При любом состоянии,q * b + a % bочень близки к A, еслиa % bотличен от нуля, имеет тот же знак, что и b, и0 <= abs(a % b) < abs(b).
In [53]: divmod(10, 3)
Out[53]: (3, 1)
In [54]: divmod(10.1, 3)
Out[54]: (3.0, 1.0999999999999996)
enumerate( iterable, start=0)
Возвращает объект перечисления. iterable должен быть последовательностью, итератором или другим объектом, поддерживающим итерацию. Зависит отenumerate()возвращаемый итератор__next__()Метод возвращает кортеж, содержащий количество (начиная с начала, по умолчанию 0) и значение, полученное в результате итерации обхода.
>>> 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
filter(function, iterable)
Итерируемая структура с элементами, функция которых возвращает значение true для итератора. iterable может быть последовательностью, контейнером или поддерживать итерационные итераторы. Если функцияNone, тождественная функция считается ложной, то есть все ложные элементы удаляются.
!> Обратите внимание, что если функция неNone,filter(function, iterable)эквивалентно генераторному выражению(item for item in iterable if function(item)). если функцияNone, что эквивалентно генераторному выражению(item for item in iterable if item).
In [8]: list(filter(None, [False, True, 0, 'test']))
Out[8]: [True, 'test']
class float([x])
Возвращает число с плавающей запятой, составленное из числа или строки x.
После удаления начальных и конечных пробельных символов ввод должен соответствовать следующему синтаксису:
sign ::= "+" | "-"
infinity ::= "Infinity" | "inf"
nan ::= "nan"
numeric_value ::= floatnumber | infinity | nan
numeric_string ::= [sign] numeric_value
Для общего объекта Python x,float(x)Порученоx .__float__().
Если аргумент не указан, возвращается 0.0.
пример:
>>> float('+1.23')
1.23
>>> float(' -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf
format(value[, format_spec])
Преобразуйте значение в "форматированное" представление, контролируемое format_spec. Интерпретация format_spec будет зависеть от типа параметра значения, однако большинство встроенных типов используют стандартный синтаксис форматирования:Мини-язык спецификации форматирования.
По умолчанию format_spec представляет собой пустую строку, которая обычно имеет тот же эффект, что и вызов str(value).
правильноformat(value, format_spec)Вызов преобразуется вtype(value).__format__(value, format_spec)Это в поисковой стоимости__format__()метод обхода словаря экземпляра. Исключение TypeError возникает, если поиск метода достигает объекта, а format_spec не пуст, или если format_spec или возвращаемое значение не является строкой.
В версии 3.4: если format_spec не пустая строка, тоobject().__format__(format_spec)вызоветTypeError.
class frozenset([iterable])
Возвращает новый объект Frozenset, возможно, с элементами из iterable.frozensetявляется встроенным классом.
frozensetОн неизменяемый, есть хэш-значение, его можно использовать как ключ словаря, а также его можно использовать как элемент других коллекций. После создания его нельзя изменить, нет метода добавления и удаления.
getattr(object, name[, default])
Возвращает значение указанного свойства объекта. имя должно быть строкой. Если строка является именем одного из свойств объекта, результатом будет значение этого свойства. Например,getattr(x, 'foobar')Эквивалентноx.foobar. Если указанное свойство не существует, возвращает значение по умолчанию (если указано), в противном случае вызываетAttributeError.
globals()
Возвращает словарь, представляющий текущую глобальную таблицу символов. Это всегда словарь текущего модуля (внутри функции или метода его определяет модуль, а не модуль, из которого он вызывается).
hasattr(object, name)
Аргументами являются объект и строка. Если строка является именем одного из свойств объекта, результатом будетTrue, в противном случаеFalse. (这是通过调用getattr(object, name)и посмотреть, если он бросаетAttributeErrorосуществленный. )
hash(object)
Возвращает хеш-значение объекта, если оно есть. Хэш-значения являются целыми числами. Они используются для быстрого сравнения ключей словаря во время поиска в словаре. Числовые значения, которые сравниваются равными, имеют одинаковое значение хеш-функции (даже если они имеют разные типы, например 1 и 1.0).
!> по индивидуальному заказу__hash__()метод объекта, обратите внимание, чтоhash()Возвращаемое значение усекается в соответствии с разрядностью хоста.
In [1]: class A:
...: def __hash__(self):
...: return 111111111111111111111111111111111111111
...:
In [2]: a = A()
In [3]: hash(a)
Out[3]: 1552656422630569496
In [4]: class A:
...: def __hash__(self):
...: return 11111111111
...:
...:
In [5]: a = A()
In [6]: hash(a)
Out[6]: 11111111111
help([object])
Вызвать встроенную справочную систему. (Эта функция предназначена для интерактивного использования.) Если аргументы не указаны, на консоли интерпретатора будет запущена интерактивная справочная система. Если аргумент является строкой, эта строка будет рассматриваться как имя модуля, функции, класса, метода, ключевого слова или раздела документации, а страница справки будет напечатана на консоли. Если параметр является объектом любого другого типа, создается страница справки по объекту.
hex(x)
Преобразуйте целое число в строчную шестнадцатеричную строку с префиксом «0x». Если x не является объектом Python int, вы должны определить возвращающий целое число__index __()метод. Некоторые примеры:
>>> 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')
!> Чтобы получить шестнадцатеричное строковое представление числа с плавающей запятой, используйтеfloat.hex()метод.
id(object)
Возвращает «идентификатор» объекта. Это целое число, которое гарантированно будет уникальным и постоянным для этого объекта в течение его жизни. Два объекта с непересекающимися временами жизни могут иметь одинаковое значение id().
Деталь реализации CPython: это адрес объектов в памяти.
input([prompt])
Если присутствует параметр приглашения, он записывается в стандартный вывод без завершающей новой строки. Затем функция считывает строку из ввода, преобразует ее в строку (удаляя завершающие символы новой строки) и возвращает строку. EOFError возникает при чтении EOF. пример:
>>> s = input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"
int
class int(x=0)
class int(x, base=10)
Возвращает целочисленный объект, созданный из числа или строки x, или 0, если аргументы не указаны. Если x не число, вернутьx.__int__().
In [22]: class A:
...: def __int__(self):
...: return 10
...:
In [23]: a = A()
In [24]: int(a)
Out[24]: 10
Если x не является числом или задано основание, то x должен быть строкой, байтами или экземпляром массива байтов, представляющим целочисленный литерал в основании. В качестве альтернативы тексту может предшествовать+или-(без пробелов между ними).
In [25]: int('-10')
Out[25]: -10
In [26]: int('+10')
Out[26]: 10
In [27]: int('- 10')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-27-a62cc7794a18> in <module>()
----> 1 int('- 10')
ValueError: invalid literal for int() with base 10: '- 10'
In [28]: int('1000',2)
Out[28]: 8
In [29]: int('ff',16)
Out[29]: 255
isinstance(object, classinfo)
Если объект является экземпляром параметра или параметров ClassInfo (прямой, косвенный или виртуальный) экземпляр подкласса, он возвращает true. Если объект не является объектом заданного типа, функция всегда возвращает false. Если классификатор TUPLE тип объекта, экземпляр объекта, в котором любой тип, он возвращает true. Если нет TUPLE TUPLE CLASSINFO или тип группыTypeErrorаномальный.
In [30]: isinstance(10, int)
Out[30]: True
In [31]: isinstance("str", (int, str))
Out[31]: True
In [32]: isinstance(max, int)
Out[32]: False
issubclass(class, classinfo)
Возвращает true, если класс является подклассом classinfo (прямым, косвенным или виртуальным). Класс считается подклассом самого себя. classinfo может быть кортежем объектов класса, и в этом случае будет проверена каждая запись в classinfo. В любом другом случае будет повышатьсяTypeErrorаномальный.
In [34]: issubclass(int, int)
Out[34]: True
In [35]: issubclass(10, int)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-35-37910f193c07> in <module>()
----> 1 issubclass(10, int)
TypeError: issubclass() arg 1 must be a class
In [36]: issubclass(int, str)
Out[36]: False
iter(object[, sentinel])
Возвращает объект итератора. Интерпретация первого параметра различается в зависимости от того, присутствует второй параметр или нет. Без второго параметра объект должен быть протоколом, поддерживающим итерацию (__iter__()методы), или он должен поддерживать протокол последовательности (целочисленные аргументы с отсчетом от нуля__getitem__()метод). Если он не поддерживает ни один из протоколов, он подниметTypeError. Если указан второй аргумент sentinel, то объект должен быть вызываемым объектом. Итератор, созданный в этом случае, будет вызывать объект без аргументов, чтобы он__next__()Вызов метода; если возвращаемое значение равно Sentinel, он будет вызватьStopIteration, иначе будет возвращено это значение.
вторая формаiter()Примером является чтение файла построчно, пока не будет достигнута определенная строка. В следующем примере файл считывается до тех пор, покаreadline()Метод возвращает пустую строку:
with open('mydata.txt') as fp:
for line in iter(fp.readline, ''):
process_line(line)
len(s)
Возвращает длину объекта (количество записей). Аргументом может быть последовательность (например, строка, байты, кортеж, список или диапазон) или набор (например, словарь, набор или замороженный набор).
Его также можно использовать для достижения__len__()Любой объект метода
In [40]: class A:
...: def __len__(self):
...: return 10
In [41]: a = A()
In [42]: len(a)
Out[42]: 10
class list([iterable])
list - это не функция, это тип изменяемой последовательности.
locals()
Обновляет и возвращает словарь, представляющий текущую локальную таблицу символов. locals() возвращает свободные переменные при вызове внутри функционального блока, но не может вызываться внутри блока класса.
!> не должен изменять его содержимое, изменения не могут повлиять на значения локальных и свободных переменных, используемых интерпретатором.
map(function, iterable, ...)
Возвращает итератор, который применяет функцию к каждому итерируемому элементу, получая результат. Если передается дополнительный итерируемый аргумент, функция должна принимать несколько аргументов и применяться к элементам во всех итерациях параллельно. При использовании нескольких итераторов итератор останавливается, когда заканчивается самый короткий итератор.
In [54]: list1 = [1, 2, 3, 4, 5, 6]
...: list2 = [4, 3, 7, 1, 9]
...:
In [55]: list(map(lambda x, y: x+y, list1, list2))
Out[55]: [5, 5, 10, 5, 14]
max
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
Возвращает самый большой элемент в итерируемом объекте или самый большой из двух или более аргументов.
Если указан позиционный аргумент, он должен быть итерируемым. Возвращается самый большой элемент в итерации. Если указаны два или более позиционных аргумента, возвращается наибольший позиционный аргумент.
Есть два необязательных аргумента ключевого слова. как ключевой параметр указываетlist.sort()Такая функция сортировки с одним аргументом. Параметр по умолчанию указывает объект, который будет возвращен, если предоставленный итератор пуст. Возникает, если итератор пуст и не указано значение по умолчанию.ValueError.
Если максимальное значение содержит более одного элемента, функция возвращает первый встреченный элемент. Это то же самое, чтоsorted(iterable, key=keyfunc, reverse=True)[0]иheapq.nlargest(1, iterable, key=keyfunc)Стабильность других инструментов сортировки остается прежней.
In [60]: list1 = [4, 3, 7, 1, 9]
In [61]: max(list1, key=lambda x: -x)
Out[61]: 1
In [62]: max([])
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-62-a48d8f8c12de> in <module>()
----> 1 max([])
ValueError: max() arg is an empty sequence
In [63]: max([], default=1)
Out[63]: 1
min
min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])
Возвращает наименьший элемент в итерируемом объекте или наименьший элемент из двух или более аргументов.
Если указан позиционный аргумент, он должен быть итерируемым. Рейс возвращается Минтерм. Если два или более параметров позиции, возвращается положение наименьшего аргумента.
Существует два дополнительных параметра ключевых слов. Параметр ключа указывает какlist.sort()Такая функция сортировки с одним аргументом. Параметр по умолчанию указывает объект, который будет возвращен, если предоставленный итератор пуст. Возникает, если итератор пуст и не указано значение по умолчанию.ValueError.
Если минимальное значение содержит более одного элемента, функция возвращает первый обнаруженный элемент. Это то же самое, чтоsorted(iterable, key=keyfunc, reverse=True)[0]иheapq.nlargest(1, iterable, key=keyfunc)Стабильность других инструментов сортировки остается прежней.
next(iterator[, default])
позвонив__next__()Метод извлекает следующий элемент из итератора. Если задано значение по умолчанию, итератор исчерпывается, когда он возвращается, в противном случае это приведет кStopIteration.
class object
Возвращает новый безликий объект. object является базовым классом для всех классов. Он имеет методы, общие для всех экземпляров класса Python. Эта функция не принимает никаких параметров.
!> объект №__dict__, поэтому вы не можете указать произвольные свойства для экземпляров класса объектов.
oct(x)
Преобразование целого числа в восьмеричную строку с префиксом «0o». Результатом является допустимое выражение Python. Если x не является объектом Python int, вы должны определить возвращающий целое число__index__()метод. Например:
>>> oct(8)
'0o10'
>>> oct(-56)
'-0o70'
Если вы хотите преобразовать целое число в восьмеричную строку, управляя отображением префикса «0o», вы можете использовать любой из следующих способов.
>>> '%#o' % 10, '%o' % 10
('0o12', '12')
>>> format(10, '#o'), format(10, 'o')
('0o12', '12')
>>> f'{10:#o}', f'{10:o}'
('0o12', '12')
open
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Откройте файл и верните соответствующий файловый объект. Возникает, если файл не может быть открытOSError.
file — это объект, подобный пути, который предоставляет путь (абсолютный или относительный к текущему рабочему каталогу) файла для открытия или целочисленный файловый дескриптор файла для переноса. (Если указан файловый дескриптор, он закрывается при закрытии возвращаемого объекта ввода/вывода, если только для параметра closefd не задано значениеFalse. )
mode — необязательная строка, указывающая режим, в котором нужно открыть файл. по умолчанию это'r', что указывает на то, что файл открыт для чтения в текстовом режиме. Другими распространенными значениями являются'w'для записи (перезапись файла, если он уже существует),'x'для эксклюзивного творчества,'a'Для дополнительных (в некоторых системах Unix это означает, что независимо от текущей позиции поиска все записи добавляются в конец файла). В текстовом режиме, если кодировка не указана, платформа кодирования относится к: вызовуlocale.getpreferredencoding(False)Чтобы получить текущую кодировку локали. (Для чтения и записи RAW BYTES, используйте двоичный режим и не указывайте кодировку) Доступные режимы:
| персонаж | значение |
|---|---|
'r' |
для чтения (по умолчанию) |
'w' |
Для записи сначала перезапишите файл |
'x' |
для эксклюзивного создания не работает, если файл уже существует |
'a' |
Для записи добавьте в конец файла (если существует) |
'b' |
двоичный режим |
't' |
текстовый режим (по умолчанию) |
'+' |
Открыть файл на диске для обновления (чтение и запись) |
'U' |
Универсальный режим новой строки (устарел) |
Режим по умолчанию'r'(для чтения текста,'rt'синоним). Для доступа к двоичному чтению и записи режим'w+b'Откройте и обрежьте файл до 0 байт.'r+b'Откройте файл без обрезки.
Как упоминалось в обзоре, Python различает двоичный и текстовый ввод-вывод. Файл, открытый в бинарном режиме (включен в параметр режима'b') возвращает содержимое в виде объекта bytes без какого-либо декодирования. в текстовом режиме (по умолчанию или когда't'при включении в параметр режима) содержимое файла возвращается как str с байтами, сначала декодированными с использованием кодировки, зависящей от платформы, или указанной кодировки (если задана).
!> Python не зависит от концепции текстовых файлов базовой операционной системы; вся обработка выполняется самим Python и, следовательно, не зависит от платформы.
ord(c)
Учитывая строку, представляющую символ Unicode, вернуть целое число, представляющее кодовую точку Unicode символа. Например,ord('a')возвращает целое число 97,ord('€')(знак евро) возвращает 8364. Этоchr()обратный процесс
pow(x, y[, z])
Возвращает x в степени y; x возвращает степень y, деленную на число z остатка (расчетный коэффициент эффективностиpow(x, y) % zвыше). Форма двойного параметраpow(x, y)Эквивалентно использованию оператора возведения в степень:x**y.
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Печатать объекты в файл текстового потока, разделенные sep, а затем завершаться end. sep, end, file и flush (если есть) должны быть указаны как аргументы ключевого слова.
Все аргументы, не являющиеся ключевыми словами, преобразуются во что-то вродеstr()Такие строки записываются в поток, разделяются sep, а затем завершаются. И sep, и end должны быть строками; они также могут быть None, что означает, что используется значение по умолчанию. Если объект не указан,print()Единственный письменный конец.
Параметр файла должен быть сwrite(string)объект метода; если он не существует или имеет значение None, он будет использованsys.stdout. Поскольку напечатанные аргументы преобразуются в текстовые строки,print()Не может использоваться для файловых объектов двоичного режима. Для них используйте вместоfile.write(...).
Буферизация вывода обычно определяется файлом, но если аргумент ключевого слова flush равен true, поток принудительно очищается.
property
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.")
Если c является экземпляром C,c.xвызовет getx,c.x = valueвызовет setx ,del c.xбудет вызываться delx.
Если дан, Док будет докстринг атрибута свойств. В противном случае свойство будет копировать DOCSTRING FGE, если он существует. Это делает использованиеproperty()Как декоратор может легко создавать только для чтения свойства:
class Parrot:
def __init__(self):
self._voltage = 100000
@property
def voltage(self):
"""Get the current voltage."""
return self._voltage
@propertyдекоратор будетvoltage()метод преобразуется в «геттер» с одноименным свойством, доступным только для чтения, и устанавливает строку документации для напряжения в“Get the current voltage.”.
Объект свойства имеет методы получения, установки и удаления, которые можно использовать в качестве декораторов, которые создают копии свойств и устанавливают соответствующие функции доступа в качестве декораторов. Это можно пояснить на примере:
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, соответствующие аргументам конструктора.
range
range(stop)
range(start, stop[, step])
Диапазон не является функцией, это на самом деле является типом последовательности неизменной
In [8]: list(range(10))
Out[8]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [9]: list(range(0, 10, 2))
Out[9]: [0, 2, 4, 6, 8]
repr(object)
Возвращает строку, содержащую печатное представление объекта. Для многих типов эта функция пытается вернуть строку, которая передается вeval()создает объект с тем же значением, в противном случае представление представляет собой строку, заключенную в угловые скобки, содержащую имя типа объекта и другую информацию, включая имя и адрес объекта. Класс может быть определен с помощью__repr__()метод для управления тем, что эта функция возвращает для своих экземпляров.
reversed(seq)
Возвращает обратный итератор. последовательность должна иметь__reversed__()метод или поддержка последовательного протокола (__len__()Метод и целочисленные аргументы начинаются с 0__getitem__()Метод) объекта.
round(number[, ndigits])
Возвращает число, округленное до n цифр после запятой. Если ndigits опущен илиNone, который вернет ближайшее целочисленное представление.
для поддержкиround()встроенных типов значение округляется до ближайшего кратного 10 в степени отрицательного nцифр, если два кратных равноудалены, для округления выбирается четное число (таким образом,round(0.5)иround(-0.5)оба равны 0 иround(1.5)это 2). ndigits может быть любым целым числом (положительным, нулевым или отрицательным). Возвращаемое значение является целым числом, если вызывается с одним аргументом, в противном случае тот же тип, что и число.
In [10]: type(round(10.9))
Out[10]: int
In [11]: type(round(10.9, 2))
Out[11]: float
Для универсального объекта Python xxx,round(xxx, ndigits)Порученоxxx.__round__(ndigits).
!> round()Поведение с плавающей запятой может удивить: например,round(2.675, 2)дает 2,67 вместо ожидаемых 2,68. Это не ошибка: это результат того, что большинство десятичных знаков не могут быть точно представлены как числа с плавающей запятой.
class set([iterable])
Возвращает новый объект коллекции, возможно, с элементами из iterable. set — это встроенный класс.
setattr(object, name, value)
это иgetattr()это пара. Аргументами являются объект, строка и произвольное значение. Строка может быть именем существующего свойства или именем нового свойства. Если объект это позволяет, функция присваивает значение свойству. Например,setattr(x, 'foobar', 123)Эквивалентноx.foobar = 123.
slice
class slice(stop)
class slice(start, stop[, step])
возвращение обозначеноrange(start, stop, step)Объект среза для указанного набора индексов. Параметры запуска и шага по умолчанию равныNone. Объекты срезов имеют атрибуты данных start, stop и step, доступные только для чтения, которые просто возвращают значения параметров (или их значения по умолчанию). У них нет другой явной функциональности, однако они используются Numerical Python и другими сторонними расширениями. Объекты среза также генерируются при использовании расширенного синтаксиса индекса. Например:a[start:stop:step]илиa[start:stop, i].
In [5]: a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [6]: s = slice(1, 8, 2)
In [7]: a[s]
Out[7]: [1, 3, 5, 7]
sorted
sorted(iterable, *, key=None, reverse=False)
Возвращает новый отсортированный список из элемента в итерируемом объекте.
Есть два необязательных аргумента, которые должны быть указаны как аргументы ключевого слова.
key указывает функцию с одним аргументом для извлечения ключа сравнения из каждого элемента списка:key=str.lower. Значение по умолчаниюNone(Сравните элементы напрямую).
reverse является логическим значением. Если установленоTrue, то элементы списка сортируются в том порядке, в котором каждое сравнение было обратным.
Встроенныйsorted()Порядок функций стабилен. Сортировка стабильна, если гарантируется, что относительный порядок элементов, которые сравниваются равными, не изменяется.
@staticmethod
Преобразуйте метод в статический метод.
Статические методы не получают неявный первый параметр. Чтобы объявить статический метод, идиома выглядит следующим образом:
class C:
@staticmethod
def f(arg1, arg2, ...): ...
Его можно найти в таких классах, какC.f()) или экземпляр (например,C().f()) по вызову.
Статические методы в Python аналогичны Java или C++ в.
str
class str(object='')
class str(object=b'', encoding='utf-8', errors='strict')
возвращает строковый объект
sum(iterable[, start])
Суммирует элементы в итерации слева направо, начиная с начала. start по умолчанию равен 0, итерируемый элемент обычно представляет собой число, а значение start не может быть строкой.
Для некоторых случаев существуютsum()Лучшие варианты, например, строка подключения должна быть''.join(sequence). Суммирование с плавающей запятойmath.fsum(). Чтобы объединить серию итераций, рассмотрите возможность использованияitertools.chain().
super([type[, object-or-type]])
Возвращает прокси-объект, который делегирует методы родительскому классу или родственному классу типа . Это полезно для доступа к переопределенным унаследованным методам в классе. порядок поиска сgetattr()Порядок использования такой же, за исключением того, что сам тип пропускается.
тип__mro__перечисленные свойстваgetattr()иsuper()Метод, используемый для решения заказа. Это свойство является динамическим и может изменяться при обновлении иерархии наследования.
Если второй параметр опущен, возвращаемый суперобъект не привязан. Если второй аргумент является объектом, то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()Процесс связывания представляет собой только явный поиск атрибутов с точками, например,super().__getitem__(name).它通过实现自己的__getattribute__()Способ сделать это, так что классы будут искать в предсказуемом порядке, необходимом для поддержки совместного многочисленного наследования. следовательно,super()Никакие неявные операторы поиска или операции не определены, напримерsuper()[name].
!> Также обратите внимание, что, за исключением формы с нулевым аргументом,super()Не ограничивается использованием внутренних методов. Правильное цитирование происходит, если точные аргументы указаны в виде двух аргументов. Форма без аргументов может использоваться только в определениях классов, поскольку компилятор заполняет необходимые детали для правильного извлечения определяемого класса, а также для доступа к текущему экземпляру обычных методов.
tuple([iterable])
Tupple не является функцией, это на самом деле неизменяемая последовательность
type
class type(object)
class type(name, bases, dict)
С одним аргументом возвращает тип объекта. Возвращаемое значение - это объект типа, обычно такой же, какobject.__class__Возвращаемый объект тот же.
Рекомендуется использоватьisinstance()Встроенная функция для проверки типа объекта, поскольку она будет учитывать подклассы.
С тремя аргументами возвращает объект нового типа. По сути, это динамическая форма объявления класса. Строка имени является именем класса и становится__name__атрибут; кортеж bases перечисляет базовые классы и становится__bases__атрибуты; dict — это пространство имен, содержащее определение тела класса, которое копируется в стандартный словарь, чтобы стать__dict__Атрибуты. Например, следующие два оператора создадут один и тот же тип объекта:
>>> class X:
... a = 1
...
>>> X = type('X', (object,), dict(a=1))
vars([object])
Возвращает модуль, словарь, класс, экземпляр или любой другой__dict__свойство объекта__dict__Атрибуты.
Объекты, такие как модули и экземпляры__dict__свойства могут быть обновлены, но другие объекты могут__dict__Существуют ограничения на запись свойств (например, классы используютtypes.MappingProxyTypeЧтобы предотвратить прямые обновления словаря).
Без параметров,vars()ведет себя какlocals(). Обратите внимание, что словарь locals используется только для чтения, так как обновления словаря locals игнорируются.
zip(*iterables)
Создайте итератор, который объединяет элементы из каждого итератора.
Возвращает итератор кортежей, где i-й кортеж содержит i-й элемент из каждой последовательности аргументов или итерации. Итератор останавливается, когда исчерпана самая короткая итерация ввода. С одним аргументом итерации он вернет итератор из 1-кортежей. Без аргументов возвращает пустой итератор. эквивалентно:
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)
следует использовать только в том случае, если вы не заботитесь о последующих значениях untail из более длинных итераторовzip(). Если эти значения важны, используйте вместоitertools.zip_longest().
и*Использовать с оператором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