PEP 526: Name mangling doesn't take place inside the body of a module
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- reStructuredText
- Estrellas
- 5k
- Forks
- 1.8k
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 25
Descripción
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.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Abre PEP 526 y revisa la sección “Runtime Effects of Type Annotations”, especialmente su ejemplo de anotación a nivel de módulo y la salida mostrada. Confirma el comportamiento de name-mangling con respecto al ejemplo y, después, actualiza el código o la salida para que coincidan y conserven una demostración clara del mangling a nivel de clase. La tarea estará terminada cuando el PEP renderizado ya no presente resultados contradictorios.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- documentation
- Tipo de issue
- Documentación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 55/100