Можно ли условно «использовать bigint» с Perl?

Я определенно предпочитаю метод format больше, так как он очень гибкий и его можно легко расширить до ваших пользовательских классов, указав представления __format__ или str или repr. Для удобства использования я использую print в следующих примерах, которые можно заменить на sys.stdout.write.

Простые примеры: выравнивание / заполнение

#Justify / ALign (left, mid, right)
print("{0:<10}".format("Guido"))    # 'Guido     '
print("{0:>10}".format("Guido"))    # '     Guido'
print("{0:^10}".format("Guido"))    # '  Guido   '

Мы можем добавить рядом с align, которые задают ^, < и > символ заполнения для замены пробела любым другим символом

print("{0:.^10}".format("Guido"))    #..Guido...
< blockquote>

Примеры нескольких последовательностей: выравнивание и заполнение многих входов

print("{0:.<20} {1:.>20} {2:.^20} ".format("Product", "Price", "Sum"))
#'Product............. ...............Price ........Sum.........'

Расширенные примеры

Если у вас есть пользовательские классы, вы можете определить его представления str или repr следующим образом:

class foo(object):
    def __str__(self):
        return "...::4::.."

    def __repr__(self):
        return "...::12::.."

Теперь вы можете использовать !s (str) или !r (repr), чтобы указать python называть те, которые определены методы. Если ничего не определено, Python по умолчанию имеет значение __format__, которое также может быть перезаписано. x = foo ()

print "{0!r:<10}".format(x)    #'...::12::..'
print "{0!s:<10}".format(x)    #'...::4::..'

Источник: базовая ссылка Python, David M. Beazley, 4th Edition

13
задан hippietrail 15 March 2011 в 10:50
поделиться