indus
Фев. 17, 2011 02:05:21
Можно ли переопределить print и если да то как?
Хочется чтобы при вызове
print "Hello %s" % "World!"
вызывалась моя функция/метод/класс print
Андрей Светлов
Фев. 17, 2011 02:13:03
Нельзя.
Можно подменить sys.stdout, в который всё попадает.
indus
Фев. 17, 2011 04:19:41
Андрей Светлов
а что есть print? где можно найти его реализацию/определение?
Спасибо!
igor.kaist
Фев. 17, 2011 07:33:40
indus, Андрей Светлов прав, не проще ли stdout (это то, куда пишет print) перенаправить на свой сласс. Дело буквально одной строчки
Андрей Светлов
Фев. 17, 2011 10:16:32
indus, примерно то же, что и while или for.
Вам всё ещё так нужна реализация?
indus
Фев. 17, 2011 23:44:25
Андрей Светлов
уже нет. смирился с неизбежным =) существуют другие способы, в частности как тут упоминали перехват stdio. я сделал еще очевиднее (не факт что проще) - написал свою хх_print.
sp3
Фев. 18, 2011 08:38:40
переопределите repr как вам нужно
class A:
def __init__(self,arg) :
self.arg = arg
def __repr__(self):
return 'value = %s'%self.arg
x = A(5)
print x