История изменений
Исправление
Novator,
(текущая версия)
:
Я тебя не понимаю. Можно конкретный пример, например, со struct? В чём, по-твоему, проблема питона?
Сравни:
Python:
import struct
comm = struct.pack('!HHBBB', segsign, index, cmd, code, crc8)
comm_len = len(comm)
Ruby:
comm = [segsign, index, cmd, code, crc8].pack('nnCCC')
comm_len = comm.size
В первом случае, я должен найти сначала библиотеку, которая занимается упаковкой байт в строку и обратно, изучить интерфейс этой библиотеки (систему классов и их методы), потом подключить эту библиотеку, вызывать метод.
Затем чтобы получить длину строки (ДЛИНУ СТРОКИ, КАРЛ!), я вызываю не метод класса String (что вполне обыденно для любого ООП), а вызываю какую-то левую конструкцию len(string)!
Это ли не зоопарк?
Во втором случае я беру базовый класс Array, вызываю метод pack.
Потом беру базовый класс String, вызываю метод size.
Всё.
Исходная версия
Novator,
:
Я тебя не понимаю. Можно конкретный пример, например, со struct? В чём, по-твоему, проблема питона?
Сравни:
Python:
import struct
comm = struct.pack('!HHBBB', segsign, index, cmd, code, crc8)
comm_len = len(comm)
Ruby:
comm = [segsign, index, cmd, code, crc8].pack('nnCCC')
comm_len = comm.size
Во первом случае, я должен найти сначала библиотеку, которая занимается упаковкой байт в строку и обратно, изучить интерфейс этой библиотеки (систему классов и их методы), потом подключить эту библиотеку, вызывать метод.
Затем чтобы получить длину строки (ДЛИНУ СТРОКИ, КАРЛ!), я вызываю не метод класса String (что вполне обыденно для любого ООП), а вызываю какую-то левую конструкцию len(string)!
Это ли не зоопарк?
В втором случае я беру базовый класс Array, вызываю метод pack.
Потом беру базовый класс String, вызываю метод size.
Всё.