Mam następujący kod Python:Cienie wbudowanej nazwy „funkcji” i „moduł” z pycharm
function = "Developer"
module = "something"
print(function + " on " + module)
Z pycharm 2017, mam pęcherzyk, który mówi „Cienie wbudowany w nazwach«funkcji»/"module" z PyCharm ".
Jestem zaskoczony, ponieważ "funkcja" i "moduł" nie są wbudowanymi nazwami. Nie są to również słowa kluczowe:
import __builtin__
import keyword
assert "function" not in dir(__builtin__) # -> OK
assert "module" not in dir(__builtin__) # -> OK
assert "function" not in keyword.kwlist # -> OK
assert "module" not in keyword.kwlist # -> OK
Co jest nie tak?
Używam CPython 2.7, ale mam taki sam problem z 3.5 & 3.6.
EDIT:
__builtin__
jest teraz builtins
w Pythonie 3.
Nadal nie rozumiem, dlaczego "funkcja" istnieje w kracie PyCharm ... –
@LaurentLAPORTE Że będziesz musiał zapytać JetBrains, ale jak wyjaśniłem w mojej odpowiedzi, najprawdopodobniej jest jakoś pomóc z podpowiedziami typu. – DeepSpace
Znalazłem odniesienie do [Typeshed] (https://github.com/python/typeshed/) na GitHub. Cytat: "Każdy moduł Pythona jest reprezentowany przez skrót" .pyi ". Jest to normalny plik Pythona (tzn. Może być interpretowany przez Python 3), ale wszystkie metody są puste. Adnotacje funkcji Pythona ([PEP 3107] (https://www.python.org/dev/peps/pep-3107/)) są używane do opisu typów funkcji." –