为了账号安全,请及时绑定邮箱和手机立即绑定

错在哪里?

class Person(object):
    pass

p1 = Person()
p1.name = 'Bart'

p2 = Person()
p2.name = 'Adam'

p3 = Person()
p3.name = 'Lisa'

L1 = [p1, p2, p3]
def cmp1(x,y):
    if x.name>y.name:
        return 1
    if x.name<y.name:
        return -1
    if x.name==y.name:
        return 0

L2=sorted(L1,cmp1)

print L2[0].name
print L2[1].name
print L2[2].name


正在回答

3 回答

输出结果是:

Adam

Bart

Lisa

不知道你想要的是什么

0 回复 有任何疑惑可以回复我~
#1

竹芒格知 提问者

非常感谢!
2016-03-01 回复 有任何疑惑可以回复我~
#2

竹芒格知 提问者

我在Python3.5上运行了就是不行
2016-03-01 回复 有任何疑惑可以回复我~

class Person(object):

    pass

 

p1 = Person()

p1.name = 'Bart'

 

p2 = Person()

p2.name = 'Adam'

 

p3 = Person()

p3.name = 'Lisa'

 

L1 = [p1, p2, p3]

def cmp1(x,y):

    if x>y:

        return 1

    if x<y:

        return -1

    if x==y:

        return 0

 

L2=sorted(L1,lambda p1,p2:cmp1(p1.name,p2.name))

 

print L2[0].name

print L2[1].name

print L2[2].name

这些就欧克l

0 回复 有任何疑惑可以回复我~

你在class  Person  并没有给 他name 的属性, 你在地下调p1.name  肯定调用不到。

0 回复 有任何疑惑可以回复我~
#1

竹芒格知 提问者

非常感谢!
2016-03-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

错在哪里?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信