2015-12-11 4 views
2

Сегодня я играл с Dict Python, и я нашел что-то странное:Почему Python копирует разные вещи для None?

>>> print {}.get('non-existant-key') 

>>> a = {}.get('non-existant-key') 
>>> print a 
None 
>>> 

Почему Repl напечатать пустое пространство с первым печатным и «None» после принятия шага сохранения значения в переменном a? То, что он пытается распечатать, одинаково в обоих случаях, так почему же существует разница?

+0

Какую версию Python вы используете? Я пробовал 2.7.8 (потому что вы используете версию 'print' Python2), и первая инструкция выводит« Нет »для меня. –

+2

Невозможно воспроизвести. –

+0

В версии '3.4.3' вывести то же самое с' print ({}. Get ('non-existant-key')) ' –

ответ

1

Хорошо, получается, что это не было поведение Python repl, но (для остальных отлично) bpython repl, который я всегда использую. Я не понимал, что использую bpython вместо vanilla python, когда я тестировал это.

В обычной замене питона все работает так, как ожидалось. Об этом я расскажу об ошибке с bpython.

Смежные вопросы