Форум сайта python.su
Можно ли переопределить print и если да то как?
Хочется чтобы при вызове
print "Hello %s" % "World!"
Офлайн
Нельзя.
Можно подменить sys.stdout, в который всё попадает.
Офлайн
Андрей Светлов
а что есть print? где можно найти его реализацию/определение?
Спасибо!
Офлайн
indus, Андрей Светлов прав, не проще ли stdout (это то, куда пишет print) перенаправить на свой сласс. Дело буквально одной строчки
Офлайн
indus, примерно то же, что и while или for.
Вам всё ещё так нужна реализация?
Офлайн
Андрей Светлов
уже нет. смирился с неизбежным =) существуют другие способы, в частности как тут упоминали перехват stdio. я сделал еще очевиднее (не факт что проще) - написал свою хх_print.
Офлайн
переопределите repr как вам нужно
class A:
def __init__(self,arg) :
self.arg = arg
def __repr__(self):
return 'value = %s'%self.arg
x = A(5)
print x
Офлайн