我是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
功能。我正在寻找更短,更习惯的东西。谢谢。
编辑:
一个问题:是我的Python化的上面的代码?
谢谢!虽然你仍然需要等待8分钟才能拿到绿色的饼干。 :-) – 2010-07-17 15:36:48