#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. Вау. Рад, что вы это нашли.