Почему python позволяет мне создавать переменные с зарезервированными ключевыми словами? - PullRequest
0 голосов
/ 13 апреля 2019

Я запустил этот код и смог присвоить значение зарезервированному ключевому слову. Почему python разрешает операторы присваивания зарезервированному ключевому слову или я делаю что-то неправильно?

скриншот https://imgur.com/a/l2yoSoh

int = 7 печать (целое) 7 :

INT (INT)

ошибка


TypeError Traceback (последний вызов был последним) в () ----> 1 int (int)

TypeError: объект 'int' не может быть вызван

Ответы [ 3 ]

5 голосов
/ 13 апреля 2019

int - не зарезервированное ключевое слово, это просто имя встроенной функции.

0 голосов
/ 13 апреля 2019

Если вы используете IDE, например, pyCharm, он выдаст вам предупреждение, если одна из ваших переменных поделится именем со встроенным или ключевым словом.

0 голосов
/ 13 апреля 2019

Существует разница между зарезервированными ключевыми словами и встроенными .

Встроенные функции, такие как int, str и float, на самом деле являются просто часто используемыми классами. Классы могут быть переназначены / переопределены, и это именно то, что вы сделали здесь, написав int = 7.

Ключевые слова, такие как as, if и while, являются очень специальными идентификаторами. Они не могут быть отменены. Если вы попытаетесь написать as = 10, вы получите SyntaxError.


Вот причина вашей ошибки: во-первых, вы дали int значение 7. Это абсолютно законно, потому что buildins могут быть переназначены. После этого ввод int(int) аналогичен вводу 7(7). 7 нельзя вызывать как функцию, поэтому в результате получается TypeError.

...