Klassen sind das, was aus der kleinen Skript-Sprache Python ein absolut mächtiges Werkzeug machen. Und Danke für das Tutorial, hab doch noch einiges dazugelernt.
Echt gute Tutorials für Einsteiger. Didaktische Empfehlung: nicht immer irgendwas ansprechen mit der Aussage "wenn ihr das nicht kennt, ist es auch egal" oder "was das ist, ist jetzt nicht wichtig". Dann lieber den Halbsatz komplett sparen. Mir gefällt, dass du es live durchführst und den Leuten damit Zeit zum Mitdenken gibst.
hey, ich finde deine tutorials echt super und lerne auch fleißig damit ;) allerdings wäre es cool, wenn du bei den videos irgendwie kurz erwähnen würdest wofür sowas benutzt wird oder wofür es praktisch wäre, da ich noch keine andere sprache kann und am anfang nicht so recht verstehe wofür ich das brauchen könnte bis dann jemand meine ersten skripte gelesen hat und mir verbesserungsvorschläge mit eben diesen sachen gegeben hat
ich habe gerade etwas herumprobiert da es bei mir leider nicht wie bei dir im video geklappt. Kann das sein dass python mittlerweile etwas an der syntax geändert hat? Wenn man auf die instanz einer Methode ( do.something) zugreifen will , man jeztz 2 argumente eingebne muss? also du hast ja im Video nur die 1337 eingeben. Ich musste jetzt myclass, 1337 eingeben
Das coole ist bei vsc muss man nur in die Klammern gehen und dann werden alle möglichkeiten gezeigt =) Aber echt gutes Video bin neu in Python und muss sagen das dass besser erklärt wird als bei anderen weiter so
Beispiel: Wasser trinken -> Klasse wäre "class wasserTrinken:", und eine dazugehörige Funktion innerhalb dieser Klasse könnte sein "def flascheÖffnen(self, kraftaufwand, drehrichtung):". Das heißt Funktionen (Methoden) findest bzw. definierst du innerhalb einer Klasse.
Hey, finde ich cool, dass du so schnell geantwortet hast. War bis jetzt eher nicht sehr aktiv in deinen Kommentaren, habe aber bis auf die C, die Haskell und die Skala Serien alle bei dir gesehen und finde es echt klasse wie du das machst! :)
wollte nur kurz fragen ob ich das richtig versatnden hab undzwar dass man mit dem befehl insatnz = MyClass() praktisch einfach nur zugriff auf die variablen und die funktionen die in der klasse sind bekommt aber sie nicht direkt ausführt sondern man dafür nochmal einen befehl geben muss?
Ja, mit Instanz = MyClass() wird MyClass() zugewiesen und jetzt kannst du mit Instanz.[Inhalt] zugreifen bzw ausführen, wie es auch im Video gezeigt wird
Ich hätte eine Frage, kann ich mit meinen Code ausser Augen und beine, name usw. auch noch was rausholen zum Beispiel, dass mein hund ein Säuger ist usw un der ungefähre Lebensdurchschnitt(also ich meine die ganzen defs), weil wenn ich sie in den print - Befehl schreibe schmeist es mit jedesmal einen Fehler class Lebewesen(): Augen = 2 def __init__(self): self.Klasse = "Säuger" def Lebensdauer(self, Lebensdurchschnitt): self.Lebensdurchschnitt = 10 class Hund(): beine = 4 name = "waldi" list = [] def __init__(self, Hunderasse): self.list.append(Rottweiler) def Lebensjahre(self, Hunde): self.Hunde = Labrador_10 self.Hunde = KingCharlesSpaniel_7 fiffi = Hund fluffi = Lebewesen fiffi.Lebensjahre print(fiffi.name) print(Lebewesen.Lebensdurchschnitt)
Kannst du folgendes erklären? Wenn ich genau den Code habe wie Du und nicht instanz = MyClass() zuweise und nur schreibe MyClass().do_something(1337), bleibt MyClass().zahl = 42, wenn ich aber zuvor die Variablenzuweisung mache mit instanz = MyClass(), dann wird die Zahl übernommen Oo
@@TheMorpheusTutorials Danke, hab es jz auch verstanden. Verwirrend wenn man von der Mathematik kommt. ^^ Wurde das schon in Videos davor erwähnt? Das war ja hier eine unerwähnte Prämisse. Danke übrigens für die schnelle Antwort! Nach den Jahren. :D
Gilt bei der Benennung von Klassen auch eine andere Regelung (als z. B. bei Variablen oder Methoden), da du es im Video ja mit dem CamelCase-Prinzip gemacht hast?
Hey Morpheus, ich habe seit zwei Wochen angefangen mit Python und bin absolut blutiger Anfänger in dem Bereich. Ich hab einen Code geschrieben und irgendwie weis ich nicht was ich falsch gemacht habe. Kann man den dir zukommen lassen ?
Also wenn du blutiger Anfänger bist, bist du hier aber schon ziemlich weit 😅 Du kannst mir aber mal das Code Fragment plus die Fehlermeldung in discord schicken 👍
class MyClass: zahl = 42 string = "zeichenkette" def what_ever(self, neuezahl): zahl = neuezahl instanz = MyClass #print(instanz.string) #-> zeichenkette instanz ist in dem fall d fkt die was in MyCLass steht aufruft #print(instanz.zahl) #-> 42 instanz.what_ever(1337) #hier ist line 10 v error print(instanz.zahl) #-> 42, weil zahl = neuezahl lokale var? ich bekomme die Fehlermeldung: nora@musicbox:~/Downloads/Python_Tut$ python3 try.py Traceback (most recent call last): File "try.py", line 10, in instanz.what_ever(1337) TypeError: what_ever() missing 1 required positional argument: 'neuezahl' und ich check nicht warum? Hilfe, bitte (kann natürlich sein, dass es bei mir bei lesen und schreiben manchmal happert -> geh auf ne FH = max. herausgefordert) & danke für die guten Tutorials
@@TheMorpheusTutorials Danke! Aber als Stundenlohn lässt es sich ja eigentlich kaum darstellen .... :-/ Du hast die Arbeit ein Mal gemacht und die Einnahmen bleiben ja aber ohne zusätzliche Arbeit. Wenn du über die Jahre immer wieder neue Views für deine Videos bekommst, dann erhältst du doch weiter Einnahmen und zwar ohne, dass es weiteren Aufwand bedarf. Oder übersehe ich da etwas?
Ja, aber es gibt einen Unterschied: this ist einJava-Schlüsselwort, self aber kein Python-Schlüsselwort. Statt self kannst du jeden beliebigen Namen verwenden. def do_something(MyClass, neuezahl): MyClass.zahl = neuezahl ist legaler Python-Code. self zu verwenden ist einfach eine Konvention.
Guten Tag Du nennst eine Funktion(do_something) immer wieder Methode. Darum die Frage, ist eine Funktion in einer Klasse eine Methode? Mit freundlichem Gruss raeuberradischen
Genau so ist es :) Funktion ohne Klasse -> Funktion Funktion in einer Klasse -> Methode :) Eine Methode ist aber im Prinzip auch nur eine Funktion mit einem Parameter mehr, nämlich dem self. Ansonsten genau gleich. Sorry, dass ich das nicht erwähnt hab.
The Morpheus Tutorials easy ich danke dir. ich lerne sehr viel durch dich. einiges ist mir schon klarer als zu beginn. ich hoffe ich schaffe dann den sprung zu blenderpython. ich danke dir für deine arbeit. cy
class MyClass: zahl = 42 string = "zeichenkette" def do_something(self, neuezahl): zahl = neuezahl instanz = MyClass() print(instanz.string) Warum bekomme ich ein error bei dem string = "Zeichenkette" und dem def do_something(self,zeuezahl):? bei der Zeichenkette wird der letzte " als fehler angesehen und bei def do_something der doppelpunkt am Ende .-.
Also von dem, was du hier gepostet hast, siehts so aus, als würde die Einrückung nicht stimmen, aber falls es das nicht ist, brauch ich die Fehlermeldung
C:\Users\Toms\Desktop\Python>python Klassen.py File "Klassen.py", line 3 string = "zeichenkette" ^ TabError: inconsistent use of tabs and spaces in indentation
jap, genau :) (Zu beidem) Vor dem Instanziieren hast du sozusagen nur den Blueprint. Nach dem Instanziieren hast du auch wirklich ein konkretes Objekt in der Hand. Super Beispiel ist Tisch. Man weiß was ein Tisch ist, aber man hat kein konkretes Beispiel im Kopf.
Wenn Du wüsstest, wie abgefahren das für mich klingt. Klar, ein Tisch kann vier, drei oder nur ein Bein haben, eine ovale, runde oder viereckige Platte. Also würde man in einer "Master"-Klasse festlegen welche Komponenten ein Tisch hat (Farbe, Platte und Beine) und diese dann an andere Klassen vererben. In denen werden dann die Atribute überschrieben (Tisch A: drei Beine, ovale Platte, Farbe schwarz) usw. Man fasst also in einer Klasse Referenzen als auch Funktionen/Methoden in einem Objekt zusammen und erlaubt sich den Zugriff auf dieses über Schnittstellen, die man selbst definiert hat. Ich hoffe ich liege jetzt nicht total daneben :D
Hm, du brauchst sie eigentlich gar nicht mehr vererben. Die Attribute sind ja Variablen, d.h. Tisch A hat beine = 3, Platte = Platten.OVAL (ein Enum) und Farbe = "schwarz" B kannst du ja mit denselben Variablen darstellen :)
Auch gut, sie werden also nur überschrieben - vererbt werden quasi nur die Eigenschaften, die alle gemeinsam haben, z.B., was weiß ich, sagen wir fünf Schrauben. Dank Dir schonmal recht herzlich, für Dich hab ich sogar meinen Addblocker ausgestellt ;)
Joa ganz gut erklärt. Ich hänge seit ner ewigkeit bei klassen fest... O.O. programmieren geht echt aufn sack aber ich glaube, das is später wichtig, zu wissen wie das funktioniert... Könntest du mehr Tutorials zu klassen machen oder hast du schon was? Ach ich schau mich einfach mal um :)
Man kann auch sagen, dass eine Klasse wie ein Bauplan für ein Objekt ist und Variablen dabei dessen Eigenschaften sind, während Methoden seine Fähigkeiten sind.
class MyClass: zahl = 42 string ="LOLOLOL" def do_something(self, neuezahl): self.zahl = neuezahl instanz = MyClass() instanz.do_something(1337) print(instanz.zahl, MyClass.zahl) warum gibt instanz.zahl 1337 aus und MyClass.zahl 42 Und wieso überhauptmacht man das: instanz = MyClass() Kann man nicht alle sachen via Myclass.zahl, MyClass.string etc aufrufen?
Ok. Also hab jetzt ein paar Videos weiter geguckt und ich versteh das so die Klasse gibt zb etwas vor, sagen wir class tiere(), hält die variablen Größe, Alter,Name und eine Instanzvaribale Spezies. Und dann kann ich diese Werte die ich immer wieder brauch wenn ich keine Ahnung Tiere Katalogisieren will benutzen, indem ich Instanzen erstelle für Katze, Hund und Co und die Klasse Tiere() selbst bleibt unverändert und nur in den Instanzen finden Änderungen statt? Das würder Erklären warum bei meinem Code MyClass.zahl 42 geblieben ist und warum Myclass.do_something nicht funktioniert.
Klassen sind das, was aus der kleinen Skript-Sprache Python ein absolut mächtiges Werkzeug machen.
Und Danke für das Tutorial, hab doch noch einiges dazugelernt.
Eins der besten Tutorials über Klassen in Python !
"es ist eigentlich immer cool" ! Gutes Ding Digger!
Danke =)
Hayyy ich habe mir ein buch gekauft und wusste erstmal nicht wie Klassen angelegt werden dieses Video hat mir sehr weitergeholfen danke :)
+JMX EA freut mich sehr =)
8:55 "in dem wir einfach klammer klammer gemacht haben" beste aussage xD
:)
Gutes Video. Alles super und anschaulich erklärt!
vielen Dank :)
Unfassbar gut erklärt und richtig spannend, endlich hab ich Klassen mal verstanden :D
klasse einführung in klassen ;-) thx
vielen Dank =)
Klasser Witz im Klassenvideo
@@tonikaiser2823 lul
Danke! Du rettest meine Motivation nachdem ich mir ein absolut besch*ssenes Buch gekauft habe. Ohne dich würde ich verzweifeln
wie heisst es?
Es kommt was ganz neues :DD
Echt gute Tutorials für Einsteiger. Didaktische Empfehlung: nicht immer irgendwas ansprechen mit der Aussage "wenn ihr das nicht kennt, ist es auch egal" oder "was das ist, ist jetzt nicht wichtig". Dann lieber den Halbsatz komplett sparen. Mir gefällt, dass du es live durchführst und den Leuten damit Zeit zum Mitdenken gibst.
hey, ich finde deine tutorials echt super und lerne auch fleißig damit ;) allerdings wäre es cool, wenn du bei den videos irgendwie kurz erwähnen würdest wofür sowas benutzt wird oder wofür es praktisch wäre, da ich noch keine andere sprache kann und am anfang nicht so recht verstehe wofür ich das brauchen könnte bis dann jemand meine ersten skripte gelesen hat und mir verbesserungsvorschläge mit eben diesen sachen gegeben hat
hey,
vielen Dank für die Tipps :) Ich versuch das einzubauen.
Sehr gutes Video!
Morpheus du Ehrensau
Super Erklärung!!! Danke! ;-)
Danke für das Lob =)
Ich dachte eine ganze Weile, dass Klassen immer Konstruktoren benötigen. Daher hatte mich dieses Tutorial verwirrt.
Du bist der Knaller! :)
ich habe gerade etwas herumprobiert da es bei mir leider nicht wie bei dir im video geklappt. Kann das sein dass python mittlerweile etwas an der syntax geändert hat? Wenn man auf die instanz einer Methode ( do.something) zugreifen will , man jeztz 2 argumente eingebne muss? also du hast ja im Video nur die 1337 eingeben. Ich musste jetzt myclass, 1337 eingeben
Das coole ist bei vsc muss man nur in die Klammern gehen und dann werden alle möglichkeiten gezeigt =)
Aber echt gutes Video bin neu in Python und muss sagen das dass besser erklärt wird als bei anderen weiter so
Danke für deine Hilfe!
gern :)
...
def do_something_else (self, mystring):
self.string = mystring
...
instanz.do_something_else("leet")
:D So muss das
Kann man auch anstatt self.zahl für die variable einfach nonlocal Zahl schreiben?
Ne, das macht was anderes 😅
Was ist jetzt der Unterschied zwischen klasse und und Funktion ?
Das versteh ich Nicht ganz und hoffe du kannst mir helfen
Beispiel: Wasser trinken -> Klasse wäre "class wasserTrinken:", und eine dazugehörige Funktion innerhalb dieser Klasse könnte sein "def flascheÖffnen(self, kraftaufwand, drehrichtung):". Das heißt Funktionen (Methoden) findest bzw. definierst du innerhalb einer Klasse.
Sind eigene .py dateien nicht auch klassen? und das was du erklärt hast aozusagen subclasses?
+Daniel Däschle Dateien sind "nur" Module, Klassen muss man wirklich als solche definieren. Man kann auch mehrere Klassen in einer Datei haben.
The Morpheus achso. Bei Java ist es aber dann so das jede Datei eine Hauptklasse hat oder?
Ich weiß, dein Kommentar ist schon älter. Wenn mich jedoch nicht alles täuscht haben APIs keine Hauptklasse.
Das kommt ganz auf die API an. Manche haben sogar mehrere. Es kommt dann immer drauf an, in welche du reinspringst am Anfang
Hey, finde ich cool, dass du so schnell geantwortet hast. War bis jetzt eher nicht sehr aktiv in deinen Kommentaren, habe aber bis auf die C, die Haskell und die Skala Serien alle bei dir gesehen und finde es echt klasse wie du das machst! :)
Brauch ich auch ein 'self' wenn ich die Methode in der Klasse aufrufe ?
+SPŁΛКΞ wenn du die Methode der Klasse innerhalb der Klasse auf der aktuellen Instanz der Klasse aufrufen will, dann ja.
wollte nur kurz fragen ob ich das richtig versatnden hab undzwar dass man mit dem befehl insatnz = MyClass() praktisch einfach nur zugriff auf die variablen und die funktionen die in der klasse sind bekommt aber sie nicht direkt ausführt sondern man dafür nochmal einen befehl geben muss?
Ja, mit Instanz = MyClass() wird MyClass() zugewiesen und jetzt kannst du mit Instanz.[Inhalt] zugreifen bzw ausführen, wie es auch im Video gezeigt wird
Super erklärt!
vielen Dank =)
Ich hätte eine Frage, kann ich mit meinen Code ausser Augen und beine, name usw. auch noch was rausholen zum Beispiel, dass mein hund ein Säuger ist usw un der ungefähre Lebensdurchschnitt(also ich meine die ganzen defs), weil wenn ich sie in den print - Befehl schreibe schmeist es mit jedesmal einen Fehler
class Lebewesen():
Augen = 2
def __init__(self):
self.Klasse = "Säuger"
def Lebensdauer(self, Lebensdurchschnitt):
self.Lebensdurchschnitt = 10
class Hund():
beine = 4
name = "waldi"
list = []
def __init__(self, Hunderasse):
self.list.append(Rottweiler)
def Lebensjahre(self, Hunde):
self.Hunde = Labrador_10
self.Hunde = KingCharlesSpaniel_7
fiffi = Hund
fluffi = Lebewesen
fiffi.Lebensjahre
print(fiffi.name)
print(Lebewesen.Lebensdurchschnitt)
fiffi.klasse geht durchaus ganz normal, aber lebensdurchschnitt musst du erst berechnen lassen oder im Konstruktor definieren
Die Zahlen sind das geilste
Dann wage ich mich jetzt auch mal an Python ran :D
viel Erfolg :D
War war mit dem "kann Tasse oder Computer sein" am Anfang gemeint?
ja ein objekt kann alles beschreiben, zb ein objekt namens computer mit den attributen marke und preis und den methoden anschalten und ausschalten
Kannst du folgendes erklären?
Wenn ich genau den Code habe wie Du und nicht instanz = MyClass() zuweise und nur schreibe MyClass().do_something(1337), bleibt MyClass().zahl = 42, wenn ich aber zuvor die Variablenzuweisung mache mit instanz = MyClass(), dann wird die Zahl übernommen Oo
Mit MyClass() erstellst do eine neue Instanz. Das ist als würdest du sie in eine Variable speichern und dann direkt wieder löschen
@@TheMorpheusTutorials Danke, hab es jz auch verstanden. Verwirrend wenn man von der Mathematik kommt. ^^ Wurde das schon in Videos davor erwähnt? Das war ja hier eine unerwähnte Prämisse.
Danke übrigens für die schnelle Antwort! Nach den Jahren. :D
Gilt bei der Benennung von Klassen auch eine andere Regelung (als z. B. bei Variablen oder Methoden), da du es im Video ja mit dem CamelCase-Prinzip gemacht hast?
Ich persönlich nutze einfach gern CamelCase, Konvention ist allerdings auf jeden Fall den Namen groß zu schreiben
Alles klar vielen Dank ;)
Ist self (als Parameter eiener Methode) einfach das Gegenteil von dem, was bei Java static ist?
Self ist quasi this 😊 in python musst du es nur noch mit angeben
hahahahaha eigentlich immer cool
Danke 😁
kann man eigentlich auch in der funktion dem parameter einen wert geben?
z.B.:
def funk(zahl):
zahl = 10
Klar 👍
Du kennst dich da ja aus, stimmt es deiner Meinung nach dass man wenn man schon ein paar Programmiersprachen kann, es leichter ist weitere zu lernen?
aber sowas von :)
Hey Morpheus, ich habe seit zwei Wochen angefangen mit Python und bin absolut blutiger Anfänger in dem Bereich. Ich hab einen Code geschrieben und irgendwie weis ich nicht was ich falsch gemacht habe. Kann man den dir zukommen lassen ?
Also wenn du blutiger Anfänger bist, bist du hier aber schon ziemlich weit 😅
Du kannst mir aber mal das Code Fragment plus die Fehlermeldung in discord schicken 👍
class MyClass:
zahl = 42
string = "zeichenkette"
def what_ever(self, neuezahl):
zahl = neuezahl
instanz = MyClass
#print(instanz.string) #-> zeichenkette instanz ist in dem fall d fkt die was in MyCLass steht aufruft
#print(instanz.zahl) #-> 42
instanz.what_ever(1337) #hier ist line 10 v error
print(instanz.zahl) #-> 42, weil zahl = neuezahl lokale var?
ich bekomme die Fehlermeldung:
nora@musicbox:~/Downloads/Python_Tut$ python3 try.py
Traceback (most recent call last):
File "try.py", line 10, in
instanz.what_ever(1337)
TypeError: what_ever() missing 1 required positional argument: 'neuezahl'
und ich check nicht warum? Hilfe, bitte (kann natürlich sein, dass es bei mir bei lesen und schreiben manchmal happert -> geh auf ne FH = max. herausgefordert)
& danke für die guten Tutorials
bei instanz = MyClass() fehlen die () - immer nachdem ich deppat gefragt hab...
😂👍
was ist das für ein Compiler den du dafür nutzt, wie heißt er?
Compiler? Das ist einfach nur python
@@TheMorpheusTutorials Ja schon aber wo schreibst denn den Code von Python rein? Ist doch kein standart Texteditor oder?
Achtung, schlechter Wortwitz:
Wenn man ein Arbeit über Klassen schreibt ist es eine Klassenarbeit
Wie gesagt, schlechter Wortwitz
Musste schmunzeln😂
Wie viel hast du hiermit auf TH-cam verdient? Und wie viel davon über Patreon bekommen? Frage nur aus Neugier. Super Video by the way. ;-)
Viel zu wenig 😂 Stundenlohn von ca 2€ für TH-cam und 1€ für Patreon. Patreon ist btw sogar öffentlich
@@TheMorpheusTutorials Danke! Aber als Stundenlohn lässt es sich ja eigentlich kaum darstellen .... :-/ Du hast die Arbeit ein Mal gemacht und die Einnahmen bleiben ja aber ohne zusätzliche Arbeit. Wenn du über die Jahre immer wieder neue Views für deine Videos bekommst, dann erhältst du doch weiter Einnahmen und zwar ohne, dass es weiteren Aufwand bedarf. Oder übersehe ich da etwas?
Ja, ich hab jetzt einfach mal den aktuellen Stand genommen und über alle Videos gemittelt 😅
Bedeutet das Self das gleiche wie in Java das this ?
Ja, aber es gibt einen Unterschied: this ist einJava-Schlüsselwort, self aber kein Python-Schlüsselwort. Statt self kannst du jeden beliebigen Namen verwenden.
def do_something(MyClass, neuezahl):
MyClass.zahl = neuezahl
ist legaler Python-Code. self zu verwenden ist einfach eine Konvention.
Guten Tag
Du nennst eine Funktion(do_something) immer wieder Methode. Darum die Frage, ist eine Funktion in einer Klasse eine Methode?
Mit freundlichem Gruss
raeuberradischen
Genau so ist es :)
Funktion ohne Klasse -> Funktion
Funktion in einer Klasse -> Methode :)
Eine Methode ist aber im Prinzip auch nur eine Funktion mit einem Parameter mehr, nämlich dem self.
Ansonsten genau gleich.
Sorry, dass ich das nicht erwähnt hab.
The Morpheus Tutorials easy ich danke dir. ich lerne sehr viel durch dich. einiges ist mir schon klarer als zu beginn. ich hoffe ich schaffe dann den sprung zu blenderpython. ich danke dir für deine arbeit. cy
Freut mich, danke dir fürs Zugucken :)
grüße
Das mit dem self ist so ähnlich wie this in java oder?
ziemlich genau gleich :)
Zitat: "diesmal ist es ahm wikrlich cool....." ich lach mich weg.
class MyClass:
zahl = 42
string = "zeichenkette"
def do_something(self, neuezahl):
zahl = neuezahl
instanz = MyClass()
print(instanz.string) Warum bekomme ich ein error bei dem string = "Zeichenkette" und dem def do_something(self,zeuezahl):? bei der Zeichenkette wird der letzte " als fehler angesehen und bei def do_something der doppelpunkt am Ende .-.
Also von dem, was du hier gepostet hast, siehts so aus, als würde die Einrückung nicht stimmen, aber falls es das nicht ist, brauch ich die Fehlermeldung
C:\Users\Toms\Desktop\Python>python Klassen.py
File "Klassen.py", line 3
string = "zeichenkette"
^
TabError: inconsistent use of tabs and spaces in indentation
Das ^ bei dem string = "zeichenkette" ist unter dem letzten " wurde irgendwie beim kopieren verschoben
Jap, dann isses so wie ich gesagt hab, du hast nen Einrückungsfehler. Einmal haste Tabs genommen, einmal Leerzeichen. Das muss gleich sein.
Muss ich immer self schreiben bei methoden? oder brauche ich das nicht immer?
Wenn es eine Methode sein soll brauchst du es. Lässt dus weg ist es wie eine Funktion in ner Klasse.
Kommt später noch genauer
Vielen Dank. Find ich echt super dass du das so gut erklärst und schritt für schritt
Freut mich :)
Was ist dann eigentlich der Unterschied zwischen Klassen und Deffinitionen?
self ist demnach auch ein Schlüsselwort?
... und: erst durch das Instanzieren wird die Klasse zum Objekt?
jap, genau :) (Zu beidem)
Vor dem Instanziieren hast du sozusagen nur den Blueprint. Nach dem Instanziieren hast du auch wirklich ein konkretes Objekt in der Hand. Super Beispiel ist Tisch. Man weiß was ein Tisch ist, aber man hat kein konkretes Beispiel im Kopf.
Wenn Du wüsstest, wie abgefahren das für mich klingt.
Klar, ein Tisch kann vier, drei oder nur ein Bein haben, eine ovale, runde oder viereckige Platte.
Also würde man in einer "Master"-Klasse festlegen welche Komponenten ein Tisch hat (Farbe, Platte und Beine) und diese dann an andere Klassen vererben.
In denen werden dann die Atribute überschrieben (Tisch A: drei Beine, ovale Platte, Farbe schwarz) usw.
Man fasst also in einer Klasse Referenzen als auch Funktionen/Methoden in einem Objekt zusammen und erlaubt sich den Zugriff auf dieses über Schnittstellen, die man selbst definiert hat.
Ich hoffe ich liege jetzt nicht total daneben :D
Hm, du brauchst sie eigentlich gar nicht mehr vererben.
Die Attribute sind ja Variablen, d.h. Tisch A hat beine = 3, Platte = Platten.OVAL (ein Enum) und Farbe = "schwarz"
B kannst du ja mit denselben Variablen darstellen :)
Auch gut, sie werden also nur überschrieben - vererbt werden quasi nur die Eigenschaften, die alle gemeinsam haben, z.B., was weiß ich, sagen wir fünf Schrauben.
Dank Dir schonmal recht herzlich, für Dich hab ich sogar meinen Addblocker ausgestellt ;)
Wie rufe ich eine Methode ohne Parameter auf ?
Fkt()
👍
PyCharm macht das mit dem self automatisch wenn man die Klammern setzen will :D
Das stimmt, ja :D
Joa ganz gut erklärt. Ich hänge seit ner ewigkeit bei klassen fest... O.O. programmieren geht echt aufn sack aber ich glaube, das is später wichtig, zu wissen wie das funktioniert... Könntest du mehr Tutorials zu klassen machen oder hast du schon was? Ach ich schau mich einfach mal um :)
Das Konzept von Klassen findest du auch bald in der Playlist "Programmieren Lernen" evtl sogar ausführlicher erklärt.
junge mit der einstellung solltest du nicht rangehen
wie löscht man instancen
Musst du nicht, das passiert automatisch, wenn sie nicht mehr genutzt wird
gc
Ist 42 deine Lieblingszahl, wenn ja, 42 -> 420 :thinking: ?!?!?
Falls du es noch nicht weißt, 42 ist die Antwort auf alles.
Lol wie lange ist das schon her
unverschämt....
98.990 aufrufe
nur 1474 likes
Bist du 20 Jahre alt?
verstehe nicht wofür klassen gut sind
Kurz gesagt: Mit Klassen meint man eigentlich nur Objekte, die Variablen & Methoden enthalten.
Man kann auch sagen, dass eine Klasse wie ein Bauplan für ein Objekt ist und Variablen dabei dessen Eigenschaften sind, während Methoden seine Fähigkeiten sind.
class MyClass:
zahl = 42
string ="LOLOLOL"
def do_something(self, neuezahl):
self.zahl = neuezahl
instanz = MyClass()
instanz.do_something(1337)
print(instanz.zahl, MyClass.zahl)
warum gibt instanz.zahl 1337 aus und MyClass.zahl 42
Und wieso überhauptmacht man das:
instanz = MyClass()
Kann man nicht alle sachen via Myclass.zahl, MyClass.string etc aufrufen?
Ok. Also hab jetzt ein paar Videos weiter geguckt und ich versteh das so die Klasse gibt zb etwas vor, sagen wir class tiere(), hält die variablen Größe, Alter,Name und eine Instanzvaribale Spezies. Und dann kann ich diese Werte die ich immer wieder brauch wenn ich keine Ahnung Tiere Katalogisieren will benutzen, indem ich Instanzen erstelle für Katze, Hund und Co und die Klasse Tiere() selbst bleibt unverändert und nur in den Instanzen finden Änderungen statt? Das würder Erklären warum bei meinem Code
MyClass.zahl 42 geblieben ist und warum Myclass.do_something nicht funktioniert.
Genau :)
Grundrauschen 20 von 10 XD
Sorry 😂 in den neuen videos ist das besser, besseres mikro und so 😁
Rauscht dein mikro nach 7 Jahren immernoch?
Guck dir ein neueres Video an, dann hörst du es 😂
Also ich kapiere nicht so ganz für was man die Klassen funktion überhaupt braucht
Man kann Klassen und deren Funktionen gut üben, indem man einen PC Konfigurator macht.