python / python/cpython

Clarify error message when unpacking objects with `*` and `**`

Offen
#127,643 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

interpreter-core type-feature
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

When attempting to unpack a list (or any other non-mapping) as a mapping, one gets this error message:

builtins.TypeError: 'list' object is not a mapping

It's confusing, especially since sometimes the unpacking is done on a long multi-line statement, and it's not clear that the unpacking is the source of the error.

I suggest modifying to:

builtins.TypeError: Can't unpack 'list' object using ** because it's not a mapping

I'll be happy to submit a pull request if you agree with this change.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Es wird keine Datei oder kein Test genannt. Durchsuche CPython nach dem vorhandenen Fehler "object is not a mapping" und verfolge den Einstiegspunkt für das ** Entpacken; füge anschließend eine Abdeckung für das Entpacken einer Liste mit ** hinzu und überprüfe, dass der resultierende TypeError wie angefordert die Operation und den Objekttyp identifiziert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.