课程
/后端开发
/Python
/python进阶
把属性当成一个list元素传进去为什么报错 非得是实例吗
2017-09-17
源自:python进阶 4-3
正在回答
你在sorted([p1.name,p2.name,p3.name],...)中[p1.name,p2.name,p3.name]实际是一个列表,对应['Bart','Adam','Lisa'],所以是没有.name这个属性的。如果想要运用你自己的方法,可以将代码改为
L2=sorted([p1.name,p2.name,p3.name],lambda p1,p2:cmp(p1,p2))
print L2[0]
print L2[1]
print L2[2]
刘莫里
你把list中的对象换成了字符串,这样你sorted排序的实际是一组字符串,对于字符串不能输出.name。sorted中必须对对象进行排序,最后才能调用.name方法。
qq_巴黎魅影_0 提问者
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计