Меня ужалил этот один (с использованием len
в аргументе на вызов метода), затем определение списка и выполнение над ним len, что дает:
def fun(len):
a = []
...
len(a)
>>>TypeError: 'int' object is not callable
Есть ли Python3 lint для VS Code IDE, который вы можете настроить для отчета о переменных, не являющихся зарезервированными словами/встроенными функциями? Или маскирование/перезапись вообще. Я не ожидал такого поведения.
Поразмыслив, я понял, что особенность Python состоит в том, что вы можете передавать функции в качестве аргументов, отсюда и двойной синтаксис len
и len()
. Но это, конечно, застало меня врасплох!
Lint, похоже, сообщает о таких вещах, как неиспользуемые переменные.
Кажется непоследовательным, что он также не предоставляет отчеты по маске имени из коробки.
Если это возможно, может кто-нибудь посоветовать, как настроить его в VS Code?
Среда:
- Код VS: Версия 1.23.1
- Питон 3.6.5
- Расширение Python 2018.4.0
- Microsoft Windows Server 2012 RC2.
len
— это имя функции, и вы используете аргумент, для которогоlen
теперь будет иметь тип аргумента, который вы вводите fun, который, как мы видим, является целым числом, является плохой практикой программирования для использования зарезервированных имен в качестве имен переменных . - person eyllanesc   schedule 30.05.2018