"Anonymes Objekt" wie Klassenfunktion aufrufen?

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
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Donnerstag 2. Oktober 2008, 15:32

Die Frage steht eigentlich schon in der Überschrift.

Code: Alles auswählen

class eintrag (object):
	
	def __init__ (self):
		self.vorname = raw_input("Vorname")
		self.name = raw_input("Name")
		
	def get_vorname (self):
		return self.vorname

mitglieder =[]
mitglieder.append(eintrag())

Wie spreche ich in diesem Fall .get_vorname() an? Da ich keine Referenz auf dieses erstellte Objekt habe
lunar

Donnerstag 2. Oktober 2008, 15:38

"mitglieder[-1].get_vorname()"?

Btw, triviale Getter und Setter (solche, die außer dem Attributzugriff nichts anderes tun) sind unpythonisch, und außerdem hat Python echte Eigenschaften.
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Donnerstag 2. Oktober 2008, 15:42

Doch, die Referenz ist ja in der Liste:

Code: Alles auswählen

mitglieder[0].get_vorname()
Deine Funktionen / Methoden solltest du übringens möglichst unabhängig von der äußeren Umgebung machen und Dinge, wie zb. das Abfragen eines Strings mit raw_input, gesondert behandeln und es der Funktion beim Aufruf als Parameter übergeben.
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Donnerstag 2. Oktober 2008, 15:44

Hi lunar,
was soll ich mit dieser Information anfangen? Python hat echte Eigenschaften?
Mir geht es darum das Problem zu lösen, dass ich keinen Zugriff auf diese Klassenfunktion bekomme, da ich keinen "Namen" des angehängten Objektes habe.
Dass solche einfachen Getter bzw. setter Funktionen nicht Pythonistisch sind ist klar ich habe nur versucht mein Problem an einem einfachen Beispiel klar zu machen.
Solche Antworten, wie die von dir, vermiesen jedem die Idee in dieses Forum eine Frage zu posten, also nichts für Ungut aber ich brauche Hilfe in Form von verwertbaren Informationen, keine Belehrungen!
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Donnerstag 2. Oktober 2008, 15:46

Hi str 1442,
da kann ich was mit anfangen! Danke schön :D
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Donnerstag 2. Oktober 2008, 15:49

breathe_easy hat geschrieben:Hi str 1442,
da kann ich was mit anfangen! Danke schön :D
Dann schau dir doch noch einmal in Ruhe an, was lunar geschrieben hat.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Donnerstag 2. Oktober 2008, 15:56

Ich konnte mit str1442 seiner Antwort eine Menge anfangen und mit der von lunar ohne jeglichen Kommentar halt so gut wie nichts. Manchmal ist es für den Dummen halt besser wenn der Denkende etwas mehr spricht!!
Danke für Eure Zeit!
DasIch
User
Beiträge: 2465
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Donnerstag 2. Oktober 2008, 16:18

lunar hat geschrieben:Btw, triviale Getter und Setter (solche, die außer dem Attributzugriff nichts anderes tun) sind unpythonisch, und außerdem hat Python echte Eigenschaften.
Was heisst dass nochmal auf Englisch? ;)
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Donnerstag 2. Oktober 2008, 16:22

breathe_easy hat geschrieben:Ich konnte mit str1442 seiner Antwort eine Menge anfangen und mit der von lunar ohne jeglichen Kommentar halt so gut wie nichts. Manchmal ist es für den Dummen halt besser wenn der Denkende etwas mehr spricht!!
Danke für Eure Zeit!
Hm, aber manchmal könnte der Dumme (du nennst dich ja selbst so) auch ein wenig mehr darüber nachdenken, was der Denkende sagt.
str1442's Posting war auch nicht informativer, mal abgesehen davon, dass er noch andere Teile des Codes kritisiert hat.
Außerdem kannst du doch froh sein, wenn dir jemand 6 Minuten nach dem Stellen der Frage die Antwort (wenn auch ohne wirkliche Erklärung) liefert. Und wenn du etwas nicht verstehst hättest du eben nochmal freundlich nachfragen können :) Keiner macht das hier für Geld, jeder schreibt einfach, weil er die Fragen anderer Beantworten möchte und ihnen damit hilft.
Naja darüber könntest du nochmal nachdenken bevor du die nächste Antwort auf deine nächste Frage direkt so heftig zurückweist.
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

Donnerstag 2. Oktober 2008, 16:22

DasIch hat geschrieben:
lunar hat geschrieben:Btw, triviale Getter und Setter (solche, die außer dem Attributzugriff nichts anderes tun) sind unpythonisch, und außerdem hat Python echte Eigenschaften.
Was heisst dass nochmal auf Englisch? ;)
property
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
breathe_easy
User
Beiträge: 58
Registriert: Sonntag 29. Juli 2007, 18:34

Freitag 3. Oktober 2008, 11:42

Hi Nocta, Sorry lunar
wenn ich mit meinem Posting über das Ziel hinaus geschossen bin, so tut mir das leid. Das Problem ist einfach für jemanden, der sehr am Anfang von Python steht, dass er mit einer völlig unkommentierten Antwort nichts anfangen kann. O.k. ich hätte nochmal nachfragen können, aber eine ordentlich Frage zu etwas zu stellen, dass keine Informationen und damit auch keine Fragezeichen liefert ist schwer.

Nochmal Danke für Eure Zeit! :wink:
lunar

Freitag 3. Oktober 2008, 11:48

NP, einigen wir uns am besten darauf, dass ich das nächste Mal noch ein, zwei Sätze samt Link zur Doku fallen lassen, und du ein bisschen mehr in der Doku liest ;)
Benutzeravatar
snafu
User
Beiträge: 5525
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Freitag 3. Oktober 2008, 16:31

"mitglieder[-1].get_vorname()"? vs. Doch, die Referenz ist ja in der Liste: mitglieder[0].get_vorname() sagt für einen Anfänger soviel anderes aus? Naja, anscheinend schon. ^^
Antworten