Печать атрибута класса в формате

#python-2.7

#python-2.7

Вопрос:

Я хотел бы показать атрибут переменной класса. Как я могу получить результат в заранее определенном формате?

Я хочу показать атрибут в форматированном виде без изменения атрибута, аналогично repr для печати экземпляра класса?

 class Name(object):
    def __init__(self, x):
        self.x = x

example = Name(3.1415)
example.x
 

Очевидно, что он вернет 3.1415. Но я хочу, чтобы example.x отображал 3.1 по умолчанию, пока его значение по-прежнему равно 3.1415. Есть ли способ сделать это?

Ответ №1:

для этого можно использовать оператор print

 print("%.1f" % example.x)
 

Обновление: если вы хотите сделать это без печати, я думаю, что единственным другим решением является использование другой переменной.

 class Name(object):
    def __init__(self, x):
        self.x = x
        self.x_round = round(x,1)


example = Name(3.1415)
example.x_round
 

Комментарии:

1. Спасибо. Я знаю, что могу это сделать. Но есть ли способ, например.x автоматически показывать 3.1?

2. Единственный другой способ, который я могу придумать, — создать новую переменную и использовать ее

3. Спасибо. Я нашел элегантный способ — ввести отдельную функцию для печати нужного формата. Например, введите функцию pretty_format_print, которая может предоставить определенный способ распечатки результата каждый раз, когда мы хотим показать результат.

4. Вау. Рад, что вы это нашли.