Уведомления

Группа в Telegram: @pythonsu

#1 Май 18, 2012 15:04:38

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

write()

Почему .write() называется не .__write__(), если это по сути магический метод?



Офлайн

#2 Май 18, 2012 17:56:31

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

write()

По какой такой сути он магический? read, close, flush, tell, seek, readline тоже магические? Вам было бы удобнее каждый раз при выводе в файл писать f.__wrtite__()?



Офлайн

#3 Май 19, 2012 16:03:17

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

write()

next() же сделали в 3.х магическим, т.к. он участвует в протоколе итератора. А read()/write() означает протокол файлового обьекта.



Офлайн

#4 Май 19, 2012 16:31:10

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

write()

  1. Уакой из объектов модуля io следует признать каноническим файловым объектом? Список методов у них отличается.
  2. Вместо it.next() рекомендуется использовать next(it). Что вы предлагаете для файлов?



Офлайн

#5 Май 19, 2012 18:02:12

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

write()

Вместо .next() в первую очередь рекомендуется использовать for или ФП. А файл-обьекты могут передаваться как параметры. Что если один сделает неканонический write(), а кто-то другой возьмет и передаст обьект в качестве файл-обьекта?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version