Разница между ОС.getenv и os.окружающая среда.получить?
есть ли вообще разница между этими двумя? Когда я должен использовать один над другим? Один из них устарел? Они, кажется, имеют точно такую же функциональность.
>>> os.getenv('TERM')
'xterm'
>>> os.environ.get('TERM')
'xterm'
>>> os.getenv('FOOBAR', "not found") == "not found"
True
>>> os.environ.get('FOOBAR', "not found") == "not found"
True
3 ответа:
одно различие наблюдается (Python27):
os.environвызывает исключение, если переменная среды не существует.os.getenvне вызывает исключение, но возвращает none
посмотреть это связано потока. В принципе,
os.environнаходится на импорте, иos.getenv- Это оболочка дляos.environ.get, по крайней мере в CPython.EDIT: чтобы ответить на комментарий, в CPython,
os.getenvэто в основном ярлык дляos.environ.get; Сos.environзагружается при импортеos, и только тогда, то же самое относится кos.getenv.
в Python 2.7 с iPython:
>>> import os >>> os.getenv?? Signature: os.getenv(key, default=None) Source: def getenv(key, default=None): """Get an environment variable, return None if it doesn't exist. The optional second argument can specify an alternate default.""" return environ.get(key, default) File: ~/venv/lib/python2.7/os.py Type: functionтаким образом, мы можем сделать вывод
os.getenv- это просто обертка вокругos.environ.get.