LINUX.ORG.RU

История изменений

Исправление 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.
Всё.