python / python/cpython

UserString subtypes parameterless `__init__`

Abierto
#131,857 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

stdlib type-feature
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Description

Subtypes of UserString cannot be initialized without a seq argument as the builtin str can.

Reproduction
from collections import UserString

class MyString(UserString):
    pass
>>> str()
''
>>> MyString()
Traceback (most recent call last):
  File "<python-input-2>", line 1, in <module>
    MyString()
    ~~~~~~~~^^
TypeError: UserString.__init__() missing 1 required positional argument: 'seq'
Workaround
from collections import UserString

class MyString(UserString):
    def __init__(self, seq: object = str()) -> None:
        super().__init__(seq)
CPython versions tested on:

3.13

Operating systems tested on:

Linux

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comience en el punto de entrada collections.UserString y reproduzca el ejemplo de construcción sin parámetros en Python 3.13. Compruebe el comportamiento de inicialización de UserString y verifique que una subclase sin su propio init pueda instanciarse como str(), mientras que la inicialización de secuencias existente siga siendo correcta.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
backend
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
52/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.