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

get_grade()方法带参

假如这里的get_grade()方法带参数呢,不是直接返回‘A’,应该怎么构造?

正在回答

3 回答

class Person(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
        self.get_grade = lambda self: 'A' if self.score >= 90 else 'B'

p1 = Person('Bob', 70)
print(p1.get_grade) 
print(p1.get_grade(p1))


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

地大新手 提问者

非常感谢!大神
2017-12-12 回复 有任何疑惑可以回复我~
#2

Sir_Y

self.get_grade = lambda self: 'A' if self.score >= 90 else 'B' 这里的 “ lambda self: 'A' ” ,self是什么意思呢?
2018-05-24 回复 有任何疑惑可以回复我~

这里的get_grade()是函数,是因为lambda算是匿名函数 

如果传参可以这样写self.get_grade = lambda x : x

写set_grade更合适

但是这样写毫无意义。

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

地大新手 提问者

你这个我自己就试了,好像不行,这样写你输出命令的代码是啥
2017-12-13 回复 有任何疑惑可以回复我~

class Person(object):

#这样也行 

   def __init__(self, name, score):

        self.name = name

        self.score = score

        self.get_grade = lambda : 'A' if self.score >= 90 else 'B'


p1 = Person('Bob', 70)

print(p1.get_grade) 

print(p1.get_grade())

  

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

举报

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

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

进入课程

get_grade()方法带参

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