Найти - Пользователи
Полная версия: Переопределить print
Начало » Python для новичков » Переопределить print
1
indus
Можно ли переопределить print и если да то как?
Хочется чтобы при вызове

print "Hello %s" % "World!"
вызывалась моя функция/метод/класс print
Андрей Светлов
Нельзя.
Можно подменить sys.stdout, в который всё попадает.
indus
Андрей Светлов
а что есть print? где можно найти его реализацию/определение?

Спасибо!
igor.kaist
indus, Андрей Светлов прав, не проще ли stdout (это то, куда пишет print) перенаправить на свой сласс. Дело буквально одной строчки
Андрей Светлов
indus, примерно то же, что и while или for.
Вам всё ещё так нужна реализация?
indus
Андрей Светлов
уже нет. смирился с неизбежным =) существуют другие способы, в частности как тут упоминали перехват stdio. я сделал еще очевиднее (не факт что проще) - написал свою хх_print.
sp3
переопределите repr как вам нужно
class A:
def __init__(self,arg) :
self.arg = arg
def __repr__(self):
return 'value = %s'%self.arg

x = A(5)
print x
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB