La plupart de mes connaissances en matière de programmation sont en Java, et je continue à faire la plupart de mes programmes en Java. Cependant, je commence à apprendre Python pour certains projets parallèles au travail, et j'aimerais l'apprendre aussi indépendamment que possible de mes connaissances en Java - c'est-à-dire que je ne veux pas simplement programmer Java en Python. Quelles sont les choses auxquelles je dois faire attention ?
Un exemple rapide : en parcourant le tutoriel Python, j'ai découvert que les paramètres mutables par défaut d'une fonction (comme une liste) sont persistants (mémorisés d'un appel à l'autre). En tant que programmeur Java, j'ai trouvé cela contre-intuitif et j'ai eu du mal à m'y retrouver. (Voir aquí y aquí si vous ne comprenez pas l'exemple).
Quelqu'un m'a aussi fourni este que j'ai trouvée utile, mais courte. Quelqu'un a-t-il d'autres exemples de la façon dont un programmeur Java pourrait avoir tendance à mal utiliser Python ? Ou des choses qu'un programmeur Java pourrait supposer à tort ou avoir du mal à comprendre ?
Editar : Ok, un bref aperçu des raisons abordées par l'article dont j'ai fait le lien pour éviter les doublons dans les réponses (comme suggéré par Bill le Lézard). (S'il vous plaît, faites-moi savoir si je fais une erreur de formulation, je n'ai fait qu'une seule réponse. juste J'ai commencé avec Python, donc je ne comprends peut-être pas tous les concepts. Et un avertissement - ceci va être très bref, donc si vous ne comprenez pas où il veut en venir, consultez le lien).
- Une méthode statique en Java ne se traduit pas par une classmethod en Python.
- Une instruction switch en Java se traduit par une table de hachage en Python.
- N'utilisez pas le XML
- Les récupérateurs et les régleurs sont mauvais (hé, je ne fais que citer :) )
- La duplication du code est souvent un mal nécessaire en Java (par exemple, la surcharge des méthodes), mais pas en Python.
(Et si vous trouvez cette question un tant soit peu intéressante, allez quand même voir le lien :) C'est assez bon).