Модуль builtins
Встроенные функции, классы и исключения
Модуль builtins обеспечивает прямой доступ ко всем встроенным функции, классы и исключениям Micropython.
Этот модуль не нужно подключать через import
.
Функции
abs
Функция abs(x)
возвращает абсолютное значение числа x
.
print(abs(-5)) # 5
print(abs(10.5)) # 10.5
all
Функция all(iterable)
возвращает True
, если все элементы в iterable
истинны (или если iterable
пуст).
print(all([1, 2, 3])) # True
print(all([0, 1, 2])) # False
any
Функция any(iterable)
возвращает True
, если хотя бы один элемент в iterable
истинен. Если iterable
пуст, возвращает False
.
print(any([0, 0, 1])) # True
print(any([0, 0, 0])) # False
bool
Функция bool(x)
преобразует x
в логическое значение. Возвращает False
для пустых коллекций или нуля и True
для всех других значений.
print(bool(0)) # False
print(bool(1)) # True
print(bool([])) # False
print(bool([1, 2])) # True
bytearray
Класс bytearray([source[, encoding[, errors]]])
возвращает изменяемый массив байтов. Может быть создан из строк, используя указанные кодировку и ошибки.
b = bytearray([104, 101, 108, 108, 111])
print(b) # bytearray(b'hello')
b[0] = 72
print(b) # bytearray(b'Hello')
bytes
Класс bytes([source[, encoding[, errors]]])
возвращает неизменяемую последовательность байтов. Параметры аналогичны bytearray
.
b = bytes([104, 101, 108, 108, 111])
print(b) # b'hello'
callable
Функция callable(object)
возвращает True
, если объект object
вызываем (например, функция, метод или класс).
print(callable(len)) # True
print(callable(42)) # False
chr
Функция chr(i)
возвращает строку, представляющую указанный Unicode код.
print(chr(97)) # 'a'
print(chr(8364)) # '€'
classmethod
Функция classmethod(function)
преобразует метод в метод класса, который принимает класс как первый аргумент.
class MyClass:
@classmethod
def my_method(cls, param):
print(f"Called with {param}")
MyClass.my_method('hello') # Called with hello
dict
Класс dict
создаёт словарь из своих аргументов.
d = dict(a=1, b=2)
print(d) # {'a': 1, 'b': 2}
# Или из последовательности ключ-значение
d = dict([('a', 1), ('b', 2)])
print(d) # {'a': 1, 'b': 2}
dir
Функция dir([object])
возвращает список атрибутов и методов object
. Если объект не указан, возвращает список имен в текущей локальной области видимости.
print(dir()) # Выведет все имена в текущей области видимости
print(dir([])) # Выведет все методы и атрибуты списка
divmod
Функция divmod(a, b)
принимает два числа (a, b)
и возвращает кортеж (a // b, a % b)
.
print(divmod(10, 3)) # (3, 1)
eval
Функция eval(expression, globals=None, locals=None)
выполняет строку expression
как код Python.
x = 1
print(eval('x + 1')) # 2
exec
Функция exec(object[, globals, locals])
выполняет строку или объект кода в указанной области видимости.
exec('x = 5')
print(x) # 5
getattr
Функция getattr(object, name[, default])
получает значение атрибута name
у object
. Возвращает default
, если атрибут не найден и default
указан.
class MyClass:
a = 1
obj = MyClass()
print(getattr(obj, 'a')) # 1
print(getattr(obj, 'b', 42)) # 42
globals
Функция globals()
возвращает словарь, представляющий текущую глобальную область видимости.
print(globals()) # {'__name__': '__main__', ...}
hasattr
Функция hasattr(object, name)
проверяет наличие атрибута name
в object
. Возвращает True
, если атрибут существует, иначе False
.
class MyClass:
a = 1
obj = MyClass()
print(hasattr(obj, 'a')) # True
print(hasattr(obj, 'b')) # False
hash
Функция hash(object)
возвращает хэш-значение объекта, если его тип поддерживает хеширование.
print(hash('hello')) # например, 99162322
id
Функция id(object)
возвращает “идентификатор” объекта, который является уникальным для данного объекта на протяжении его существования.
a = 'hello'
print(id(a)) # уникальный идентификатор, например, 140267785929840
int
Класс int(x=0)
преобразует строку или число в целое число. Строку можно передать второй аргумент — основание системы счисления.
print(int('1010', 2)) # 10
print(int('10')) # 10
isinstance
Функция isinstance(object, classinfo)
проверяет, является ли объект экземпляром класса или кортежа классов. Возвращает True
, если объект является экземпляром или подклассом одного из классов, иначе False
.
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass)) # True
print(isinstance(obj, (MyClass, int))) # True
print(isinstance(obj, int)) # False
issubclass
Функция issubclass(class, classinfo)
проверяет, является ли класс подклассом другого класса или кортежа классов. Возвращает True
, если условие выполняется, иначе False
.
class Parent:
pass
class Child(Parent):
pass
print(issubclass(Child, Parent)) # True
print(issubclass(Parent, Child)) # False
print(issubclass(Child, (Parent, list))) # True
iter
Функция iter(object[, sentinel])
возвращает объект итератора из объекта, поддерживающего итерацию. Если указан аргумент sentinel
, объект должен быть вызываемым, и итерация завершится после возвращения значения sentinel
.
lst = [1, 2, 3]
iterator = iter(lst)
print(next(iterator)) # 1
print(next(iterator)) # 2
def countdown(n):
while n > 0:
yield n
n -= 1
for num in iter(countdown(3)):
print(num)
len
Функция len(s)
возвращает количество элементов в объекте s
, которое может быть строкой, списком, кортежем и т.д.
lst = [1, 2, 3, 4]
print(len(lst)) # 4
string = "hello"
print(len(string)) # 5
list
Класс list()
создает новый список. Можно передать итерируемый объект для заполнения списка его элементами.
iterable = (1, 2, 3)
lst = list(iterable)
print(lst) # [1, 2, 3]
empty_list = list()
print(empty_list) # []
locals
Функция locals()
возвращает словарь текущей локальной таблицы символов.
def local_vars_example():
a = 1
b = 2
print(locals())
local_vars_example()
# Вывод: {'a': 1, 'b': 2}
map
Функция map(function, iterable, ...)
применяет функцию ко всем элементам переданных итераторов и возвращает итератор результатов.
def square(x):
return x * x
nums = [1, 2, 3, 4]
squared_nums = map(square, nums)
print(list(squared_nums)) # [1, 4, 9, 16]
next
Функция next(iterator[, default])
извлекает следующий элемент из итератора. Если итератор завершен, возвращает значение default
, если оно предоставлено, иначе вызывает StopIteration
.
iterator = iter([1, 2, 3])
print(next(iterator)) # 1
print(next(iterator)) # 2
print(next(iterator, 'конец')) # 3
print(next(iterator, 'конец')) # 'конец'
object
Класс object()
является базовым классом для всех классов в Python. Он может быть использован для создания простого объекта.
obj = object()
print(isinstance(obj, object)) # True
open
Функция open(file, mode='r', buffering=-1, encoding=None, ...)
открывает файл и возвращает соответствующий объект файла.
with open('example.txt', 'w') as f:
f.write('Hello, world!')
with open('example.txt', 'r') as f:
print(f.read()) # Hello, world!
ord
Функция ord(c)
возвращает числовое представление для указанного символа c
.
print(ord('a')) # 97
print(ord('A')) # 65
pow
Функция pow(x, y[, z])
возвращает x в степени y. Если указан третий аргумент, возвращает x**y % z
.
print(pow(2, 3)) # 8
print(pow(2, 3, 3)) # 2 (так как 2**3 % 3 = 8 % 3 = 2)
Функция print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
выводит объекты в поток вывода.
print('Hello', 'world', sep=', ', end='!\n') # Hello, world!
range
Функция range([start,] stop[, step])
возвращает объект, который производит арифметическую прогрессию чисел.
for i in range(1, 5):
print(i)
# Вывод: 1 2 3 4
repr
Функция repr(object)
возвращает строковое представление объекта.
print(repr('Hello\nWorld')) # 'Hello\nWorld'
round
Функция round(number[, ndigits])
возвращает число, округленное до заданного количества десятичных знаков.
print(round(3.14159, 2)) # 3.14
set
Класс set()
создает новый объект множества.
s = set([1, 2, 3])
print(s) # {1, 2, 3}
setattr
Функция setattr(object, name, value)
устанавливает значение атрибута name
в объекте object
.
class MyClass:
pass
obj = MyClass()
setattr(obj, 'attr', 10)
print(obj.attr) # 10
sorted
Функция sorted(iterable, *, key=None, reverse=False)
возвращает новый отсортированный список из элементов iterable
.
print(sorted([3, 1, 4, 1, 5, 9])) # [1, 1, 3, 4, 5, 9]
staticmethod
Декоратор staticmethod
обозначает метод класса как статический, то есть не привязанный к экземпляру.
class MyClass:
@staticmethod
def static_method():
print("Это статический метод.")
MyClass.static_method() # Это статический метод.
str
Функция str(object='')
возвращает строковое представление объекта. Если объект не указан, возвращает пустую строку.
print(str(123)) # '123'
print(str([1, 2, 3])) # '[1, 2, 3]'
print(str()) # ''
sum
Функция sum(iterable, start=0)
возвращает сумму чисел из iterable
, начиная с значения start
.
print(sum([1, 2, 3])) # 6
print(sum([1, 2, 3], 10)) # 16
super
Функция super([type[, object-or-type]])
возвращает прокси-объект, который делегирует вызовы метода базовому классу.
class Parent:
def greet(self):
print("Hello from Parent")
class Child(Parent):
def greet(self):
super().greet() # Вызов метода базового класса
print("Hello from Child")
Child().greet()
# Output:
# Hello from Parent
# Hello from Child
tuple
Функция tuple([iterable])
создает кортеж из итерируемого объекта. Без аргументов возвращает пустой кортеж.
print(tuple([1, 2, 3])) # (1, 2, 3)
print(tuple('abc')) # ('a', 'b', 'c')
print(tuple()) # ()
type
Функция type(object)
возвращает тип объекта. Форма type(name, bases, dict)
создает новый тип.
print(type(123)) # <class 'int'>
print(type([1, 2, 3])) # <class 'list'>
# Создание нового типа
MyClass = type('MyClass', (object,), {'attr': 42})
obj = MyClass()
print(obj.attr) # 42
zip
Функция zip(*iterables)
соединяет элементы из нескольких итерируемых объектов, создавая кортежи.
print(list(zip([1, 2, 3], ['a', 'b', 'c']))) # [(1, 'a'), (2, 'b'), (3, 'c')]
bin
Функция bin(x)
возвращает строку, представляющую двоичное число x
.
print(bin(5)) # '0b101'
print(bin(-5)) # '-0b101'
compile
Функция compile(source, filename, mode)
компилирует источник source
в код, который может быть выполнен функцией exec().
code = compile('print("Hello, World!")', '<string>', 'exec')
exec(code) # Hello, World!
complex
Функция complex([real[, imag]])
создает комплексное число.
print(complex(2, 3)) # (2+3j)
print(complex(5)) # (5+0j)
delattr
Функция delattr(object, name)
удаляет атрибут name
из объекта.
class MyClass:
a = 10
obj = MyClass()
delattr(obj, 'a')
# print(obj.a) # AttributeError: 'MyClass' object has no attribute 'a'
enumerate
Функция enumerate(iterable, start=0)
возвращает кортежи, содержащие счётчик и значение из iterable
.
for i, item in enumerate(['a', 'b', 'c']):
print(i, item)
# Output:
# 0 a
# 1 b
# 2 c
execfile
Функция execfile(filename[, globals[, locals]])
выполняет Python-скрипт из файла.
# Содержимое файла test.py: print("Hello from file")
# execfile('test.py') # Hello from file
filter
Функция filter(function, iterable)
создает новый итератор из значений, для которых function
возвращает True
.
print(list(filter(lambda x: x % 2 == 0, range(10)))) # [0, 2, 4, 6, 8]
float
Функция float([x])
преобразует значение x
в число с плавающей точкой.
print(float('3.14')) # 3.14
print(float(5)) # 5.0
frozenset
Функция frozenset([iterable])
создает неизменяемое множество.
fs = frozenset([1, 2, 3])
print(fs) # frozenset({1, 2, 3})
help
Функция help([object])
вызывает систему помощи для объекта или интерпретатора.
# help(list) # Выводит справку по объекту list
hex
Функция hex(x)
возвращает строку, представляющую шестнадцатеричное число x
.
print(hex(255)) # '0xff'
print(hex(-42)) # '-0x2a'
max
Функция max(iterable, *[, key, default])
возвращает наибольший элемент из iterable
.
print(max([1, 2, 3])) # 3
print(max('abc', key=lambda x: ord(x))) # 'c'
memoryview
Функция memoryview(obj)
создает новый объект, который представляет память массива.
mv = memoryview(b'abc')
print(mv[0]) # 97
min
Функция min(iterable, *[, key, default])
возвращает наименьший элемент из iterable
.
print(min([1, 2, 3])) # 1
print(min('abc', key=lambda x: ord(x))) # 'a'
oct
Функция oct(x)
возвращает строку, представляющую восьмеричное число x
.
print(oct(8)) # '0o10'
print(oct(-8)) # '-0o10'
property
Класс property(fget=None, fset=None, fdel=None, doc=None)
создает управляемый атрибут класса.
class MyClass:
def __init__(self):
self._x = None
@property
def x(self):
return self._x
@x.setter
def x(self, value):
self._x = value
obj = MyClass()
obj.x = 10
print(obj.x) # 10
reversed
Функция reversed(seq)
возвращает итератор для обратного просмотра seq
.
print(list(reversed([1, 2, 3]))) # [3, 2, 1]
slice
Класс slice(start, stop[, step])
представляет объект среза, который используется для указания диапазона индексов.
s = slice(1, 5, 2)
print([1, 2, 3, 4, 5][s]) # [2, 4]
Исключения
ArithmeticError
Исключение ArithmeticError
является базовым классом всех ошибок, возникающих при арифметических операциях.
Пример использования:
try:
result = 10 / 0
except ArithmeticError as e:
print("Arithmetic error occurred:", e)
AssertionError
Исключение AssertionError
выбрасывается, когда утверждение (assert
) не является истинным.
Пример использования:
try:
assert 2 + 2 == 5
except AssertionError as e:
print("Assertion failed:", e)
AttributeError
Исключение AttributeError
выбрасывается при попытке обратиться к несуществующему атрибуту объекта.
Пример использования:
class MyClass:
pass
obj = MyClass()
try:
obj.attribute
except AttributeError as e:
print("Attribute error:", e)
BaseException
BaseException
является базовым классом всех исключений.
Пример использования:
try:
raise BaseException("Base error")
except BaseException as e:
print("Caught BaseException:", e)
EOFError
Исключение EOFError
возникает, когда считывается конец файла (или аналогичного потока), тогда как больше данных ожидалось.
Пример использования:
try:
input_text = input("Input something: ")
except EOFError as e:
print("End of file error:", e)
GeneratorExit
Исключение GeneratorExit
сигнализирует о закрытии генератора.
Пример использования:
def my_generator():
try:
yield 1
finally:
print("Generator is closing")
gen = my_generator()
print(next(gen))
gen.close()
ImportError
Исключение ImportError
выбрасывается, если импортирован модуль, который не был найден.
Пример использования:
try:
import non_existent_module
except ImportError as e:
print("Import error:", e)
IndentationError
Исключение IndentationError
возникает при неправильном отступе в коде.
Пример использования:
try:
exec("def foo():\nprint('Hello')")
except IndentationError as e:
print("Indentation error:", e)
IndexError
Исключение IndexError
возникает при попытке доступа к несуществующему индексу в последовательности.
Пример использования:
data = [1, 2, 3]
try:
value = data[5]
except IndexError as e:
print("Index error:", e)
KeyError
Исключение KeyError
выбрасывается при попытке получить доступ к несуществующему ключу словаря.
Пример использования:
my_dict = {'a': 1}
try:
value = my_dict['b']
except KeyError as e:
print("Key error:", e)
KeyboardInterrupt
Исключение KeyboardInterrupt
возникает при прерывании программы пользователем (например, при нажатии Ctrl+C
).
Пример использования:
try:
while True:
pass
except KeyboardInterrupt as e:
print("Program interrupted")
LookupError
Исключение LookupError
является базовым классом для IndexError
и KeyError
.
Пример использования:
try:
raise LookupError("This is a lookup error")
except LookupError as e:
print("LookupError caught:", e)
MemoryError
Исключение MemoryError
выбрасывается, когда программе не хватает памяти для выполнения операции.
Пример использования:
try:
large_list = [1] * (10**6) * (10**6)
except MemoryError as e:
print("Memory error:", e)
NameError
Исключение NameError
выбрасывается при попытке использования переменной, которая не объявлена.
Пример использования:
try:
print(undefined_variable)
except NameError as e:
print("Name error:", e)
NotImplementedError
Исключение NotImplementedError
сигнализирует, что абстрактный метод в базе класса требует переопределения в подклассе.
Пример использования:
class BaseClass:
def feature(self):
raise NotImplementedError("Subclasses should implement this method")
class DerivedClass(BaseClass):
def feature(self):
return "Feature implemented"
obj = DerivedClass()
try:
print(obj.feature())
except NotImplementedError as e:
print(e)
OSError
Исключение OSError
выбрасывается для сигнализации об ошибке, связанной с операционной системой (например, невозможность открыть файл).
Пример использования:
try:
f = open("not_existing_file.txt", "r")
except OSError as e:
print("OS error:", e)
OverflowError
Исключение OverflowError
выбрасывается, когда результат арифметической операции превышает допустимый диапазон.
Пример использования:
import math
try:
result = math.exp(1000)
except OverflowError as e:
print("Overflow error:", e)
RuntimeError
Исключение RuntimeError
выбрасывается, когда обнаружена ошибка, которая не попадает ни под одно другое определенное исключение.
Пример использования:
try:
raise RuntimeError("Runtime error occurred")
except RuntimeError as e:
print("Runtime error:", e)
StopIteration
Исключение StopIteration
выбрасывается при попытке получить следующий элемент после окончания итератора.
Пример использования:
iterator = iter([1, 2, 3])
try:
while True:
print(next(iterator))
except StopIteration as e:
print("StopIteration caught:", e)
SyntaxError
Исключение SyntaxError
возникает при некорректной синтаксической конструкции в коде.
Пример использования:
try:
exec("if True print('Hello')")
except SyntaxError as e:
print("Syntax error:", e)
SystemExit
Исключение SystemExit
выбрасывается функцией sys.exit()
для выхода из программы.
Пример использования:
import sys
try:
sys.exit("Exiting the program")
except SystemExit as e:
print("SystemExit caught:", e)
TypeError
Исключение TypeError
возникает при выполнении операции с несовместимыми типами.
Пример использования:
try:
result = '1' + 1
except TypeError as e:
print("Type error:", e)
ValueError
Исключение ValueError
выбрасывается, когда функция получает правильного типа аргумент с некорректным значением.
Пример использования:
try:
number = int('invalid')
except ValueError as e:
print("Value error:", e)
ZeroDivisionError
Исключение ZeroDivisionError
возникает при делении на ноль.
Пример использования:
try:
result = 10 / 0
except ZeroDivisionError as e:
print("Zero division error:", e)
UnicodeError
Исключение UnicodeError
связано с ошибками, происходящими при операциях с Unicode.
Пример использования:
try:
text = b'\x80abc'.decode('utf-8')
except UnicodeError as e:
print("Unicode error:", e)
Ключевые слова
Ellipsis
Ключевое слово Ellipsis
или ...
используется в качестве заполнителя и имеет специальные применения, например, в срезах numpy.
Пример использования:
def func(*args):
return args
print(func(...)) # Выведет: (Ellipsis,)
Exception
Exception
является базовым классом для всех исключений, кроме для SystemExit
, KeyboardInterrupt
, и GeneratorExit
.
try:
raise Exception("An exception occurred")
except Exception as e:
print("Exception caught:", e)
NotImplemented
Ключевое слово NotImplemented
используется для указания, что метод не поддерживает переданную операцию между двумя типами и используется в магических методах.
class MyNumber:
def __eq__(self, other):
if isinstance(other, MyNumber):
return True
return NotImplemented
print(MyNumber() == MyNumber()) # True
StopAsyncIteration
Исключение StopAsyncIteration
используется для остановки асинхронного итератора.
class AsyncIterator:
def __init__(self, limit):
self.current = 0
self.limit = limit
async def __anext__(self):
if self.current >= self.limit:
raise StopAsyncIteration
else:
self.current += 1
return self.current
# Пример вызова асинхронного генератора должен вызываться внутри асинхронной функции