processing / processing/libprocessing
Naming collision between Processing `map()` and Python `map()`
Personne n'a encore pris cette issue.
- Langage dominant
- Rust
- Étoiles
- 69
- Forks
- 14
- Merge moyen
- 15 j 22 h
- PR mergées (30 j)
- 3
Description
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par l’exemple de tableau et la collision de map() décrits dans l’issue, puis comparez le dispatch de processing.py référencé dans PAppletJythonDriver.java avec l’API remap() de py5. Déterminez quel comportement de nommage ou de dispatch libprocessing devrait adopter, et prenez en compte les implications pour la compatibilité avec les fonctions intégrées de Python. C’est terminé lorsque l’API retenue résout l’exemple sans ambiguïté et est documentée ou testée en conséquence.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python, rust
- Domaine
- api
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100