python / python/typeshed

dict.__init__() and dict.update() don't match

Ouverte
#6,056 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
5.1k
Forks
2.1k
Merge moyen
1 j 19 h
PR mergées (30 j)
82

Description

https://github.com/python/typeshed/blob/196f69b27e4353b07372a6641903e6d7fe4b330f/stdlib/builtins.pyi#L807-L818

https://github.com/python/typeshed/blob/196f69b27e4353b07372a6641903e6d7fe4b330f/stdlib/builtins.pyi#L824-L829

In stubs, __init__ has 5 overloads and update() has 3 overloads. But at runtime, dict.update() accepts everything that dict.__init__ accepts. For example:

>>> d={}
>>> d.update((s.split('=') for s in ['a=b', 'c=d']), lol='wut')
>>> d
{'a': 'b', 'c': 'd', 'lol': 'wut'}

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

Ouvrez stdlib/builtins.pyi et examinez les plages de surcharge associées à dict.init() et dict.update(). Reproduisez l’exemple d’exécution documenté, puis comparez les formes d’appel acceptées ; le travail est terminé lorsque le stub de update() correspond aux formes d’initialisation décrites dans l’issue.

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

Évaluation

Stack technique
python
Domaine
tooling
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

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