Attualmente sto lavorando alla creazione di un modulo di algebra lineare python per il divertimento e la pratica con la lingua. Recentemente ho provato ad aggiungere annotazioni di tipo al modulo, come ad esempio:Nome non definito nell'annotazione del tipo
class Vector:
# Various irrelevant implementation details
def __add__(self, other: Vector) -> Vector:
# More implementation details....
Tuttavia, quando provo ad importare questo, sputa fuori un NameError: Name 'Vector' is not defined
. Riconosco che questa domanda ha già ricevuto risposta, in un modulo, here, ma non sembra fornire una risposta completa alla mia situazione.
Che mi piacerebbe sapere:
- Ho definito la classe letteralmente in questo file. Perché dice che il nome non è definito?
- Come si definisce
Vector
in modo che possa essere utilizzato per le annotazioni (cometype
)?
Si prega di mantenere il tuo indirizzo limitato a ** una ** domanda per posta. Qui ci sono 2 domande distinte, una sulla dipendenza circolare (metodi della classe che dipendono dalla classe prima che sia stata creata) e sulla differenza tra un tipo e una classe. Quest'ultimo è un duplicato. –
Vedi [Class vs.Digitare in Python] (https://stackoverflow.com/q/35958961) per la parte della domanda che ho rimosso dal tuo post. –
Siamo spiacenti. Pensavo che la domanda tipo fosse pertinente al problema in questione. – BHustus