2008-11-30 8 views
43

Ich bin ein langjähriger C++/Java-Entwickler, der versucht, in Python zu gelangen und bin auf der Suche nach dem stereotypen "Python for C++ Developers" -Artikel. Ich habe diese Art von Dingen für C#, Java usw. gesehen, und sie sind unglaublich nützlich, um sich mit Sprachfunktionen und bemerkenswerten Unterschieden vertraut zu machen. Hat jemand Referenzen?Python für C++ - Entwickler

Als eine sekundäre Bonusfrage, welches Open-Source-Python-Programm würden Sie vorschlagen, für sauberes Design, Kommentierung und Verwendung der Sprache als Bezugspunkt für das Studium zu betrachten?

Vielen Dank im Voraus.

Antwort

26

Ich habe nie den Ansatz "Sprache X für Sprache Y" verstanden. Wenn ich auf der Suche nach Sprache X bin, möchte ich lernen, wie man es so programmiert, wie es bei Programmierern von Sprache X der Fall ist. Ich möchte die Funktionen, Idiome usw. lernen, die in der Sprache, die ich lerne, einzigartig sind. Ich möchte in der Lage sein, die Dinge zu nutzen, die die Sprache besonders machen, und dieses Wissen zu nutzen, um meine Denk- und Problemlösungen zu erweitern. Ich glaube nicht, dass ich aus einem Tutorial, das im Kontext einer anderen Sprache erstellt wurde, die gleichen Einsichten bekommen würde. Wenn Sie Ihre erste Sprache ohne eine Anleitung lernen können, die auf etwas ausgerichtet ist, was Sie bereits wissen, sollten Sie in der Lage sein, eine zweite Sprache auf die gleiche Weise zu erlernen (und je mehr Sprachen Sie kennen, desto einfacher ist es, neue Sprachen zu lernen).

das gesagt ist, würde ich The Python Tutorial als eine gute, schnelle und einfache Art und Weise empfehle mit Python und Dive Into Python als eine vollständige Einführung in Gang zu bringen, auch kostenlos here zur Verfügung. Ich stimme auch dem überein, was andere über den Code für die Standardbibliotheken als eine Quelle guter Beispiele und Designpraktiken gesagt haben, die Standard-Python-Bibliotheken sind ziemlich sauber und leicht zu lesen.

+43

Ich würde zustimmen, die Idiome und Funktionen sind wichtig. Aber ich bin nicht neu in der Programmierung, also langweilten mich viele Tutorials mit dem Durchbohren von "Das ist eine for-Schleife", bevor sie "Oh ja, es kann über Listenstrukturen iterieren" verraten. –

+0

Zumindest versuchen Sie nicht, das Gegenteil zu tun! C++ hat ein Problem darin, dass seine Verwendung sehr inkonsistent ist, üblicherweise basierend auf dem Hintergrund des Codierers. – coppro

+0

Auch Tauchen in Python ist für erfahrene Programmierer. Ich darf diesen Link nur selbst benutzen; Vielen Dank! – coppro

0

Für die besten Beispiele für den Code einer Sprache ist die Standardbibliothek der Sprache oft ein guter Ort, um sie zu betrachten. Wählen Sie eine neuere Arbeit - alte Teile sind wahrscheinlich für ältere Versionen geschrieben und wurden auch manchmal geschrieben, bevor die Bibliothek groß genug wurde, um große Standards zu rechtfertigen - wie PHP und Erlangs Bibliotheken, die interne Inkonsistenz haben.

Speziell für Python räumt Python 3000 die Bibliothek auf und ist wahrscheinlich eine gute Quelle für guten Python-Code (obwohl es für eine zukünftige Python-Version geschrieben wurde).

4

Ich habe viel über Python gelernt, indem ich die Quelle der Standardbibliothek gelesen habe, die mit Python ausgeliefert wird. Ich erinnere mich, dass ich ein paar "a-ha!" Momente beim Lesen urllib2.py insbesondere.

2

Python unterscheidet sich ausreichend von C++, sodass spezifisches Wissen normalerweise nicht übertragen werden kann. Es sind ein paar language verfügbar. Was Sie übertragen können, ist die Kenntnis spezifischer APIs, z. der POSIX- oder Socket-APIs.

Als Beispiel für eine typische Python (GUI) -Anwendung, schauen Sie sich IDLE (wie für Python ausgeliefert) an.

1

C# und Java werden in vielen Anwendungsbereichen als sauberer Ersatz für C++ angesehen, daher gibt es oft eine "Migration" von einem zum anderen - deshalb gibt es Bücher.

Python und C++ sind sehr unterschiedliche Biester, und obwohl sie beide allgemeine Programmiersprachen sind, sind sie auf verschiedene Enden des Programmierspektrums ausgerichtet.

Versuchen Sie nicht, C++ in Python zu schreiben; Versuchen Sie C++ zu vergessen, wenn Sie Python schreiben. Ich fand es viel besser, die üblichen Python-Paradigmen und -Techniken zu lernen und sie auf meine C++ - Programme anzuwenden, als umgekehrt.

1

Um die Sprache zu lernen, ist die kostenlose und online python tutorial wirklich alles, was Sie brauchen, um die Sprache zu erlernen und anzufangen, Apps zu schreiben. Wenn Sie ein Buch wollen, habe ich Beginning Python von Apress gefunden, um eine ausgezeichnete Referenz und Tutorial zu sein. Natürlich ist der beste Weg, um eine Sprache zu lernen, Code zu schreiben, daher würde ich empfehlen, dass Sie Boost.Python auschecken. Wenn Sie ein C++ haben, das ein bisschen flexibler sein muss, kann Boost.Python Ihnen eine gute Entschuldigung geben, Python zu lernen und dafür bezahlt zu werden.