Cannot determine type of "userlist"
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
Unexpected error Cannot determine type of "userlist". Needs a cyclic import to happen.
To Reproduce
foo.py
import bar
class Foo:
def __init__(self) -> None:
self.view_selector = object()
bar.py
from foo import Foo
class ServerView:
def __init__(self) -> None:
print(ChannelView().userlist)
self.view_id = str(Foo().view_selector)
class ChannelView:
def __init__(self) -> None:
print(ServerView().view_id)
self.userlist = object()
Expected Behavior
no error, or an error that does not confusingly go away when I delete a seemingly unrelated line of code
Actual Behavior
$ python3 -m mypy foo.py bar.py
bar.py:5: error: Cannot determine type of "userlist"
Found 1 error in 1 file (checked 2 source files)
Your Environment
- Mypy version used: master (053a1beb94ee4e5b3260725594315d1b6776e42f)
- Mypy command-line flags: none
- Mypy configuration options from
mypy.ini(and other config files): none - Python version used: doesn't matter, why do you ask?
- Operating system and version: is a weird question to ask. I am tired of answering this question. But I guess it could be useful in some other issue.
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
Führen Sie zunächst python3 -m mypy foo.py bar.py für das bereitgestellte Beispiel mit zyklischen Imports aus und vergleichen Sie den userlist-Fehler mit dem erwarteten Verhalten. Verfolgen Sie, wie mypy die Definitionen von Foo, ServerView und ChannelView in foo.py und bar.py analysiert; als erledigt gilt die Aufgabe, wenn das Beispiel nicht mehr den verwirrenden Fehler Cannot determine type of "userlist" ausgibt oder eine klarere Diagnose meldet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100