Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Naming collision between Processing `map()` and Python `map()`

Offen
#131 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
38/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
python, rust
Bereich
api

Rechercherichtung

Beginne mit dem im Issue beschriebenen Array-Beispiel und der map()-Kollision und vergleiche dann den referenzierten processing.py-Dispatch in PAppletJythonDriver.java mit der remap()-API von py5. Bestimme, welches Benennungs- oder Dispatch-Verhalten libprocessing übernehmen sollte, und berücksichtige die Auswirkungen auf die Kompatibilität mit den in Python integrierten Funktionen. Als erledigt gilt die Aufgabe, wenn die gewählte API das Beispiel ohne Mehrdeutigkeit auflöst und entsprechend dokumentiert oder getestet ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Trying to port the array example (See issue: Port Basics / Arrays / Array #3) and I'm running into this error:

coswave = [abs(cos(map(i, 0, width, 0, pi))) for i in range(width)]
                       ~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'int' object is not iterable

I suppose this is because Python has its own map() function (a list transformation) different from the map() function in Processing (a linear interpolation function).

Processing.py handles this by wrapping map() and dispatching based on the arguments (see source code). It uses the Processing version when called with five numeric arguments, and otherwise falls back to Python’s built-in. Note: the same approach is used for filter().

By contrast, py5 avoids the conflict by renaming the function to remap() instead.

Vorherrschende Sprache
Rust
Sterne
69
Forks
14
Ø Merge
15 T. 22 Std.
Gemergte PRs (30 T.)
3

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus processing/libprocessing

Alle Issues in processing/libprocessing

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

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