PEP 526: Name mangling doesn't take place inside the body of a module
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 55/100
- Type d'issue
- Documentation
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- documentation
Piste de recherche
Ouvrez PEP 526 et examinez la section “Runtime Effects of Type Annotations”, en particulier son exemple d’annotation au niveau du module et la sortie affichée. Confirmez le comportement de name-mangling par rapport à l’exemple, puis mettez à jour le code ou la sortie afin qu’ils concordent et conservent une démonstration claire du mangling au niveau de la classe. La tâche est terminée lorsque le PEP rendu ne présente plus de résultats contradictoires.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hi,
In PEP 526, there is a section called "Runtime Effects of Type Annotations" which has the following code:
from typing import Dict
class Player:
...
players: Dict[str, Player]
__points: int
print(__annotations__)
# prints: {'players': typing.Dict[str, __main__.Player],
# '_Player__points': <class 'int'>}
The code and the output don't match.
Name mangling only happens inside the body of the class not module. So the correct output would be:
{'players': typing.Dict[str, __main__.Player], '__points': <class 'int'>}
If we want to see the effect of name mangling we could have something like:
from typing import Dict
class Player:
__points: int
players: Dict[str, Player]
print(__annotations__)
print(Player.__annotations__)
Or have the print(__annotations__) inside the class:
from typing import Dict
class Player:
__points: int
print(__annotations__)
players: Dict[str, Player]
print(__annotations__)
That would be a quick fix if you confirm.
- Langage dominant
- reStructuredText
- Étoiles
- 5k
- Forks
- 1.8k
- Merge moyen
- 1 j 15 h
- PR mergées (30 j)
- 34
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire 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.
Autres issues de python/peps
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
python/peps#5064 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Infra: Make `Discussion-To` optional in source, display from latest `Post-History` during buildOuverteinfra
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
python/peps#5158 · 3 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
New PEP Editors?Ouvertemeta
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
python/peps#5080 · 3 commentaires · 3 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
infra
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
python/peps#4924 · 6 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de python/peps
Issues similaires
-
agent-butler-finding bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 94/100
jordansmall/spindrift#4367 ·
Les mainteneurs répondent en général sous 1 jour
-
agentic-workflows documentation workflow-editor
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
githubnext/gh-aw-workshop#4139 ·
Les mainteneurs répondent en général sous 1 jour
-
Suggestion: document (or optionally add) a cheaper-model config for find-skills on Claude CodeOuvertefeature
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
vercel-labs/skills#2370 ·
Les mainteneurs répondent en général sous 1 jour
-
sync-en
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
Les mainteneurs répondent en général sous 1 jour
-
sync-en
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 3 jours