Что на самом деле является ключевым словом в Python? - PullRequest
0 голосов
/ 11 февраля 2019

Мы можем получить список ключевых слов Python следующим образом:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Классно, но я не ожидал увидеть там False, None и True.Они являются встроенными объектами.

Почему ключевые слова True, False и None, а int нет?Что действительно делает что-то ключевым словом в Python?

Редактировать: я говорю о Python 3

Ответы [ 3 ]

0 голосов
/ 11 февраля 2019

Python не похож на Javascript.В Javascript вы можете делать что-то вроде undefined = "defined" (обновление: это исправлено).

Ключевые слова зависят от того, какой Python вы используете.Например: async - это новое ключевое слово в 3.7.

Хотя так было не всегда, в Python 2 True = False было допустимо ...

>>> True = False
>>> True
False
>>> True is False
True

Так что «это встроенные объекты». Да, но новые версии Python предотвращают глупость.Это единственная причина, по которой ...

Новые ключевые слова (начиная с Python 2.7):

False
None
True
async
await
nonlocal

и, конечно, exec и print больше не являются ключевыми словами.

0 голосов
/ 11 февраля 2019

в Python 2.6 вы можете сделать что-то вроде True = False (действительно сбивает с толку)

Это может помочь вам в этом ссылка

0 голосов
/ 11 февраля 2019

Ключевые слова являются зарезервированными именами, поэтому их нельзя назначать.

>>> True = 0
  File "<stdin>", line 1
SyntaxError: can't assign to keyword

int - это тип;вполне возможно переназначить его:

>>> int = str
>>>

(хотя я действительно не рекомендовал бы это.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...