Может кто-нибудь объяснить, почему происходит следующее? Я взглянул на Should I use `import os.path` or `import os`?, который является информативным, смутно похожим, но на самом деле не прояснил его для меня.Confused почему import os; os.environ ['a'] = 'x'; import os.path повышает UnboundLocalError
Если я прокомментирую import os.path
или добавьте его непосредственно после import os
, нет ошибок.
$ python -V
Python 2.7.2
$ cat min.py
import os
def main():
os.environ['blah'] = 'bloo'
import os.path
if __name__ == '__main__':
main()
$ python min.py
Traceback (most recent call last):
File "min.py", line 9, in <module>
main()
File "min.py", line 4, in main
os.environ['blah'] = 'bloo'
UnboundLocalError: local variable 'os' referenced before assignment
$
Не уверен, но я подозреваю, что «импорт os.path» рассчитывает как записи в 'os' переменной в локальной области видимости, поэтому' os' не существует до того, что (который, кажется, как ошибка для меня, что os считается здесь присвоением). 'os.path' должен быть целью назначения. – Max