Warn if instance atribute is defined outside of __init__
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Feature
(Optionally?) generate error if the instance attribute is defined outside of __init__
Pitch
Mypy does not generate any errors for the code below:
class Tst:
def __init__(self) -> None:
...
def create_field(self) -> None:
self.abc = 1 # Please, generate error here
def print_field(self) -> None:
print(self.abc) # And, optionally here...
def main() -> None:
tst = Tst()
tst.print_field()
if __name__ == '__main__':
main()
which fails with run time error, caused by the absence of the abc attribute definition in the __init__ method.
Additionaly:
PyCharm and pylint generate error in the line 6.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
L’issue ne nomme aucun fichier d’implémentation, test ou point d’entrée. Commencez par l’exemple Python fourni et examinez la manière dont mypy gère actuellement les attributs d’instance ; le travail est considéré comme terminé lorsqu’un diagnostic pour les affectations en dehors de init a été défini, qu’il a été déterminé si les lectures telles que print_field sont incluses, et que le comportement demandé est couvert par des tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100