Я новичок в Python. У меня есть эта небольшая проблема. Я хочу напечатать список объектов, но все его распечатки - это какое-то странное внутреннее представление объекта. Я даже определил метод __str__
, но все же я получаю этот странный вывод. Что мне здесь не хватает?Печать списка объектов
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)
Пожалуйста, обратите внимание, что я знаю, что могу использовать либо for
петлю или map
функцию здесь. Я ищу что-то более короткое и более идиоматическое. Благодарю.
EDIT:
еще вопрос один: Является ли выше код шахты вещий?
Спасибо! Хотя вам все равно придется ждать 8 минут для зеленого печенья. :-) –