Есть ещё крайне удобный метод сериализации под названием to_pickle и соответствующая ему функция pd.read_pickle. По работе сталкивался с необходимостью сохранять датасеты величиной в десятки гигабайт, и подобная сериализация сокращала время сохранения и чтения с диска примерно в 100 раз, по сравнению с csv-форматом. И в качестве бонуса pickle-файлы обычно получаются значительно легче.
Надо сказать, что подобный метод можно использовать для сохранения любого питоновского объекта. Для этого можно использовать библиотеку, входящую в стандарт.
Если говорить о типе переменной, то он является понятием динамическим, а не статическим.
Это приводит к тому, что для того, чтобы гарантировать, что в конкретном месте программы переменная foo имеет тип baz, то приходится писать бесконечные:
isinstance(foo, baz)
или
type(foo) is baz
в которых можно наделать ошибок, если случай хоть сколь-нибудь сложный.
Надо сказать, что подобный метод можно использовать для сохранения любого питоновского объекта. Для этого можно использовать библиотеку, входящую в стандарт.
Ну и маленькая стилистическая ремарка:
Вместо медленного и плохо читаемого
начиная с версии 3.6 можно использовать f-строки:
Для этого можно использовать макрос
ward!
Конкретно на Раст есть библиотека Pest, поддерживающая крайне удобный способ описания грамматик.
Очень дельный комментарий про PEP484, про который я совсем забыл упомянуть в статье. Спасибо!
Здесь также можно почитать о том, как применять аннотации типов в Питоне.
Соглашусь, что в этом случае я написал не совсем чётко. Привязанный тип имеет не сама переменная, а объект, на который она указывает.
В Питоне вы можете делать следующее:
Если говорить о типе переменной, то он является понятием динамическим, а не статическим.
Это приводит к тому, что для того, чтобы гарантировать, что в конкретном месте программы переменная
foo
имеет типbaz
, то приходится писать бесконечные:или
в которых можно наделать ошибок, если случай хоть сколь-нибудь сложный.