Skip to content

Instantly share code, notes, and snippets.

@david-shiko
Last active February 21, 2022 13:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save david-shiko/0dcf88642bb34f037484c9f015956ff5 to your computer and use it in GitHub Desktop.
Save david-shiko/0dcf88642bb34f037484c9f015956ff5 to your computer and use it in GitHub Desktop.
чистый питон заметки

Инструкция assert предназначена для того, чтобы сообщать разработчикам о неустранимых(!) ошибках в программе.

Инструкции assert могут быть глобально отключены переключателями командной строки -O и -OO, а также переменной окружения PYTHONOPTIMIZE в СPython.

Когда в инструкцию assert в качестве первого аргумента передается кортеж, assert всегда возвращает True: assert(1 == 2, False) # True

Двойной начальный символ подчеркивания __var: запускает механизм искажения имен при использовании в контексте класса. Обеспечивается интерпретатором Python.

def proxy(func):
 def wrapper(*args, **kwargs):
  return func(*args, **kwargs)
 return wrapper

С этим декоратором происходят две вещи, заслуживающие внимания: В определении замыкания wrapper он использует операторы * и **, чтобы собрать все позиционные и именованные аргументы, и помещает их в переменные (args и kwargs). Замыкание wrapper затем переадресует собранные аргументы в оригинальную входную функцию, используя операторы «распаковки аргументов» * и **. К сожалению, в Python значение операторов «звездочка» и «двойная звездочка» перегружено и меняется в зависимости от контекста, в котором они используются, но надеюсь, вы уловили идею

Выражение is дает True , если две переменные указывают на тот же самый (идентичный) объект. Выражение == дает True , если объекты, на которые ссылаются переменные, равны (имеют одинаковое содержимое).

объекты могут управлять тем, как они копируются, если в них определить специальные методы copy() и deepcopy()

переменные класса могут быть «затенены» переменными экземпляра, имеющими одинаковое имя

my_class.method() == MyClass.method(my_class_instance)

array.array - Для хранения списка с элементами одного типа

struct.Struct - Преобразование python типа в С структуру. "Выполняет преобразование между значениями Python и структурами C, сериализованными в форму объектов Python bytes."

types.SimpleNamespace - Позволяет создать структуру вроде словаря, к элементам которой можно обращать через точку (.) frozenset реализует неизменяемую версию множества set heap - Модуль для реализации очередей с приоритетом some_func.__code__.some_attr - Покажет связанные с ф-й объекты

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment