Mypy not reporting "undefined" variable.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
When using a "undefined" variable, which will immediately crash the code when running it, mypy does not report anything about it. Is it normal ?
I feel like mypy should report it but maybe I am wrong because this isn't a typing error. On the other hand, this error is only possible because typing annotations exist . What do you think ?
To Reproduce
Dump this in a file main.py:
number: int
print(number)
Gist URL: https://gist.github.com/mypy-play/31d3775229a6fe01af6bbb09b9230a18
Playground URL: https://mypy-play.net/?mypy=latest&python=3.11&gist=31d3775229a6fe01af6bbb09b9230a18
Expected Behavior
An error message, maybe something like this.
main.py:2: error: Using an undefined variable, a value must be set before first. [var-undefined]
Actual Behavior
$ mypy --strict main.py
Success: no issues found in 1 source file
python main.py
Traceback (most recent call last):
File "/home/user/main.py", line 2, in <module>
print(number)
^^^^^^
NameError: name 'number' is not defined
Your Environment
- Mypy version used: 1.3.0
- Mypy command-line flags: --strict
- Mypy configuration options from
mypy.ini(and other config files): nothing - Python version used: 3.11.3
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das Verhalten mit dem Beispiel main.py und mypy --strict main.py nachzustellen. Überprüfe, wie der Checker eine Variable behandelt, die nur annotiert ist, bevor du entscheidest, ob dieser Fall eine Diagnose wie [var-undefined] erhalten sollte. Die Aufgabe ist erledigt, wenn das Verhalten entweder durch einen geeigneten Test und eine Diagnose abgedeckt ist oder das erwartete Verhalten als nicht unterstützt dokumentiert wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100