Ist es möglich, die Zeichenfolgendarstellung (mit __str__) aller Objekte in einer Liste von Objekten aus einer eigenen __str__ Funktion anderer Klassen zurückzugeben?Einzelne Zeichenfolgendarstellung aller Objekte in der Liste der Objekte zurückgeben
Angenommen, ich habe eine Klasse, die alle Methoden enthält, die an Bar-Objekten ausgeführt werden. Nenne diese Klasse Foo. Dann:
class Foo:
def __init__(self):
self.bars = [] # contains Bar objects
def __str__(self):
return "This is the Foo object"
class Bar:
def __init__(self, arg1):
self.arg1 = arg1
def __str__(self):
return "This is Bar object: " + arg1
def main():
foo = Foo()
print(str(foo))
Ich mag die Stringdarstellung aller Objekte in self.bars drucken WHEN ich Haupt() aufgerufen, um eine Instanz des Bar-Objekts, da die Schaffung würde mir nicht geben Zugriff auf die Zeichenfolge Darstellung aller Objekte in self.bars. in Bezug auf die Notwendigkeit von __repr__
Um zu klären, ich bin nicht die gleiche Frage wie in this Post zu fragen. Stattdessen möchte ich die String-Repräsentation jedes Objekts wie bei einer for-Schleife einzeln zurückgeben.
Gibt es überhaupt, um dies vernünftig oder unangemessen zu tun?
Meinst du sowas wie 'return ','. Join (str (b) für b in self.bars)'? – mgilson
Auch, wenn ich die gleiche Frage wie der Link, den ich gepostet habe, stelle, dann fühle mich frei, mich zu korrigieren. Wenn das in gewisser Hinsicht ein Duplikat ist, liegt es nur an meinem Missverständnis des Themas. – kmartmvp