Ich bin ein Python-Neuling. Ich habe dieses kleine Problem. Ich möchte eine Liste von Objekten drucken, aber alles, was es druckt, ist eine seltsame interne Repräsentation des Objekts. Ich habe sogar __str__
Methode definiert, aber immer noch bekomme ich diese seltsame Ausgabe. Was fehlt mir hier?Drucken einer Liste von Objekten
class person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return self.name + "(" + str(self.age) + ")"
def partition(coll, pred):
left = []
right = []
for c in coll:
if pred(c):
left.append(c)
else:
right.append(c)
return left, right
people = [
person("Cheryl", 20),
person("Shemoor", 14),
person("Kimbala", 25),
person("Sakharam", 8)
]
young_fellas, old_fellas = partition(people, lambda p : p.age < 18)
print(young_fellas)
print(old_fellas)
Bitte beachten Sie, dass ich weiß, dass ich entweder eine for
Schleife oder eine map
Funktion hier nutzen kann. Ich suche etwas kürzer und idiomatischer. Vielen Dank.
EDIT:
Noch eine Frage: Ist der obige Code von mir Pythonic?
Vielen Dank! Allerdings müssen Sie immer noch 8 Minuten auf den grünen Keks warten. :-) –