Формат строки фиксированной ширины Python с использованием vars или __dict__Python

Программы на Python
Ответить
Anonymous
 Формат строки фиксированной ширины Python с использованием vars или __dict__

Сообщение Anonymous »

Я работаю над проектом Python и надеюсь использовать несколько ярлыков для форматирования данных класса в строке. Более конкретно, я хотел бы иметь возможность использовать что-то похожее на '{a}{b}{c}'.format(**vars(self), [strlen, strlen, strlen]) и указывать длина строки каждого отображаемого атрибута. Например:

Код: Выделить всё

class Dummy(object):
def __init__(self):
self.value1 = 'A VALUE'
self.value2 = 'ANOTHER VALUE'
self.value3 = 'THIRD VALUE'

def to_s(self):
# want value1 to be 20 chars
# value2 to be 8 chars
# value3 to be 10 chars
# is something similar to this possible
return '{value1},{value2},{value3}'.format(**vars(self), [20, 8, 10])

def to_s2(self):
# or will I have to reference each explicitly and specify the either padding or slicing?
return '{},{},{}'.format(self.value1.ljust(20), self.value2[:8], self.value3[:10])
Я знаю, что это маловероятно, но пара этих классов имеет 30 или 40 атрибутов, и если бы это было осуществимо, жизнь была бы намного проще.

Подробнее здесь: https://stackoverflow.com/questions/402 ... rs-or-dict
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»