Форум сайта python.su
-2
Объясните пожалуйста, почему если не вызвать функцию reload, то вываливается ошибка:
>>> import sys >>> sys.setdefaultencoding('utf-8') Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'setdefaultencoding'
import sys reload(sys) sys.setdefaultencoding('utf-8')
Офлайн
32
Потому что при старте setdefaultencoding удаляется, а изначально он там есть.
Офлайн
-2
o7412369815963Ого, интересно, не знал, что так может быть. Можете объяснить из-за чего так получается?
Потому что при старте setdefaultencoding удаляется, а изначально он там есть.
Set the current default string encoding used by the Unicode implementation. If name does not match any available encoding, LookupError is raised. This function is only intended to be used by the site module implementation and, where needed, by sitecustomize. Once used by the site module, it is removed from the sys module’s namespace.
Отредактировано young_programmer (Ноя. 11, 2013 22:35:18)
Офлайн
32
young_programmerНу общий смысл такой - ф-ия предназначена только для внутреннего использования (“настройщиком”) в модуле когда это надо.
Не очень понял смысл написанного там. Что подразумевается под “site module” и “where needed, by sitecustomize”.
Офлайн
import модуля это сложный процесс, в процессе которого загружается модуль site.py, он наряду со своими обязанностями и убирает этот метод из пространства имён.
Офлайн