已采纳回答 / 慕粉4096446
类方法不需要创建实例,不需要new一个对象来调用,节省了创建实例的内存空间,就像static的东西似的,随着类的创建而创建而不是随着对象的创建而创建。
2019-02-07
最新回答 / 慕粉4096446
因为慕课网的编译器得出来的结果有问题,结果是错误的,其实第一个结果也是错的。<function Person.__init__.<locals>.<lambda> at 0x0000017164FA78C8>A<bound method fn_get_grade of <__main__.Person object at 0x0000017164FB1400>>A这才是正确结果
2019-02-07
已采纳回答 / 穿拖鞋的维恩
g1(5)中的5传到了fn(x)中的x,g1指向了fn,fn是要传入一个参数的,相当于g1要传入一个参数,最后一句print g1(5)相当于有执行fn(5),fn函数中又有f(x),相当于执行f(5),相当于执行f1(5),望采纳
2019-02-06
最赞回答 / _江帅
%s 和%fs是转换说明符,指出要将值插入什么地方,而要插入的值就是(f.__name__, (t2 - t1)),两个%对应两个值,输出结果就是call f.__name__ () in (t2 - t1);第二行就是简单的字符串拼接。
2019-01-26
最赞回答 / Awful_Leo
错误原因:全局变量gcd未定义。因为你的gcd函数定义在了Rational这个类内部,成为了一个实例方法,但在__str__这个方法中,您并未按照实例方法来引用,等号右边应该是self.gcd,因为这是一个内部方法了。如果在类外面定义gcd函数,等号右面就可以直接用gcd了。
2019-01-25
已采纳回答 / martingeng
>>> def add(x, y, f):... return f(x) + f(y)...>>> print add(5, -5, abs)10在终端练习的时候需要注意,方法定义后需要进行空行以表示结束,连续输入会被认为是一个语句块,这样肯定会出现语法异常。
2019-01-23