Wann ist Python objektorientiert?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Raycomes
User
Beiträge: 1
Registriert: Montag 22. Mai 2017, 21:50

Hallo zusammen,

kurz zu meiner Person: 24 Jahre , BWL Student und kurz vor dem Abschluss (Ende September).
Während meines Praktikum vor ein paar Wochen "Wirtschaftsprüfung/Steuerberatung" habe ich feststellen müssen, dass auch in der BWL mehr und mehr auf Kenntnisse der Informationstechnologie wert gelegt wird. Der klassische BWL-Student muss zum Hybrid werden, tiefgehendes Wissen der Wirtschaft UND eine Affinität zur Informatik.
Daher habe ich beschlossen den Master nicht in BWL, sondern in Wirtschaftsinformatik zu belegen.

Mein Problem/Ziel
Die von mir ausgewählte Uni verlangt jedoch für "Quereinsteiger" wie mich die Voraussetzung der "Kenntnisse einer Objekt orientierten Programmiersprache". Ich habe mich bereits ein bisschen fortgebildet in <html/> und .css { :D }. ( http://www.udacity.com )
Nun bin ich dabei in meinem Kurs Python zu behandeln, schaue ich jedoch bei Wikipedia, wird diese nur bedingt als "objekt orientiert" dargestellt..
Ich fühle mich momentan recht wohl mit dem Einstieg in Python und glaube, dass es als blutiger Anfänger ein bisschen einfacher sein wird Python zu lernen, als z.B Java..

Python vs Java:

Java:

[codebox=java5 file=Unbenannt.java]class HelloWorld {
public static void main(String[] args) {
System.out.printIn("Hello World");
}
}
[/code]
Python

Code: Alles auswählen

print "Hello World"

Ich werde in der Uni noch einmal nachfragen was genau die sich unter "objekt orientierter" Sprache vorstellen.. Ich hoffe ich kann beim Python lernen bleiben.
PS: Kennt jemand ein Deutsches Institut was mir bei ausreichenden Fähigkeiten eine Art "Grundkenntnisse Python" Zertifizieren kann? Also mit Prüfung natürlich etc.

Vielen Dank
Zuletzt geändert von Anonymous am Montag 22. Mai 2017, 22:35, insgesamt 1-mal geändert.
Grund: Quelltext in Codebox-Tags gesetzt.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

@Raycomes: man kann zwar durch Namenskonvention deutlich machen, dass man auf etwas nicht zugreifen soll, aber deshalb geht zugreifen doch. Private und Protected, nichts ist geschützt. Aber in Java kann man auch tricksen, obwohl man dort private und public deklarieren kann.
BlackJack

@Raycomes: Ich denke über kurz oder lang wird kaum ein Studiengang mehr ohne Informatikkenntisse auskommen. Und bei BWL finde ich das auch weniger überraschend als in anderen Bereichen, schliesslich wird da ja ziemlich sicher gerechnet und mit Modellen gearbeitet.

Objektorientierung ist keine Spracheigenschaft, also sind streng genommen weder Java noch Python objektorientiert. Insbesondere die beiden Beispielprogramme von Dir sind nicht objektorientiert. Oder das Java-Beispiel höchstens mit ein bisschen gutem Willen, weil da immerhin eine Methode auf einem Objekt aufgerufen wird. Die gleiche Argumentation könnte man bei einem Python 3 Beispiel (``print("Hello World")``) dann aber auch bringen.

Objektorientierung ist ein Programmierparadigma wie die funktionale Programmierung, oder prozedurale Programmierung, oder deklarative Programmierung, …

Programmiersprachen können Sprachmittel zur Verfügung stellen um leichter objektorientiert damit zu programmieren. Was also sehr wahrscheinlich gemeint ist, ist eine Programmiersprache die objektorientierte Programmierung explizit unterstützt oder zumindest leicht und gut unterstützen kann. (Beim letzten Halbsatz hatte ich Lisp/Scheme-Derivate im Hinterkopf, die das nicht direkt in der Sprache unterstützen, für die es aber Bibliotheken dafür gibt. :-))

Python unterstützt objektorientierte Programmierung sehr gut. Die Sprache geht sogar so weit, dass *alles* was man an einen Namen binden kann, ein Objekt ist. Inklusive Module, Klassen, Funktionen, und Methoden. Soweit geht Java nicht. Wobei da in Java 8 ein paar interessante Sachen dazu gekommen sind. Ironischerweise im Zuge von der Integration von mehr *funktionaler* Programmierung. :-)

Python unterstützt zudem noch andere Paradigmen, neben der Objektorientierung, was aber ja nicht heisst Objektorientierung würde nur „bedingt“ unterstützt. Was hat denn diesen Eindruck bei Dir erweckt?

Letztlich wird man für den Praxiseinsatz sowieso mehr als eine Programmiersprache lernen müssen. Also wenn die Uni Python nicht mag, aber Du schon, kann es sich trotzdem lohne Python zu lernen. :-)

@Alfons Mittelmeyer: Zugriffsschutz und Kapselung sind orthogonale Fragen. Für Kapselung braucht man keinen Zugriffsschutz, anderseits gibt's Zugriffsschutz auch bei Sprachen die Objektorientierung nicht explizit unterstützen.
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich werde in der Uni noch einmal nachfragen was genau die sich unter "objekt orientierter" Sprache vorstellen..
Das solltest du auf jeden Fall machen. I.d.R. ist es ja so, dass die Uni schon eine sehr konkrete Vorstellung hat, wie diese "Erfahrung" auszusehen hat. Und es auch meistens nicht verhandelbar ist, was die Uni anerkennt (und was nicht) ;-) Bei Python hast du immerhin den Vorteil, dass es eine "Mainstream Sprache" ist, was das Anerkennen erleichtern könnte.

Gruß, noisefloor
Antworten