Найти - Пользователи
Полная версия: Функция reload
Начало » Python для новичков » Функция reload
1
young_programmer
Объясните пожалуйста, почему если не вызвать функцию 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')
o7412369815963
Потому что при старте setdefaultencoding удаляется, а изначально он там есть.
young_programmer
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.
Не очень понял смысл написанного там. Что подразумевается под “site module” и “where needed, by sitecustomize”.
o7412369815963
young_programmer
Не очень понял смысл написанного там. Что подразумевается под “site module” и “where needed, by sitecustomize”.
Ну общий смысл такой - ф-ия предназначена только для внутреннего использования (“настройщиком”) в модуле когда это надо.
dimy44
import модуля это сложный процесс, в процессе которого загружается модуль site.py, он наряду со своими обязанностями и убирает этот метод из пространства имён.
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