python / python/mypy

Error when using TypeVar in type annotation for @property

Ouverte
#16,539 3 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

from typing import TypeVar, Generic
from pyspark.sql import DataFrame
import pandas as pd
AnyDataFrame = TypeVar('AnyDataFrame', pd.DataFrame, DataFrame)

class OutputA(Generic[AnyDataFrame]):

    @property
    def original_data(self) -> AnyDataFrame:
        return self._original_data

    @original_data.setter
    def original_data(self, value: AnyDataFrame) -> None:
        self._original_data = value

I get mypy error: Need type annotation for "_original_data" [var-annotated]

I have to add the annotation as below to solve the error, why?

    @original_data.setter
    def original_data(self, value: AnyDataFrame) -> None:
        self._original_data: AnyDataFrame = value

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez le snippet Python signalé avec mypy et examinez comment sont analysés le getter de la propriété, le setter, TypeVar et la classe Generic. Suivez le chemin de diagnostic pour l’attribut _original_data non annoté ; le travail est terminé lorsque le comportement est expliqué ou que le problème est réduit à un défaut reproductible de vérification de types.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
devtools
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.