最新回答 / 宝慕林6305465
我找到原因了普通变量如果在函数中赋值a = 2会有歧义。因为它既可以是表示引用全局变量a,也可以是创建一个新的局部变量,所以在python中,默认它的行为是创建局部变量,除非显式声明global。而对列表list变量进行赋值b[0] = 2则不会有歧义。它是“明确的”,因为如果把b当作是局部变量的话,它会报KeyError,所以它只能是引用全局的b,故不需要多此一举显式声明global。
2019-05-10
最赞回答 / qq_栋_3
改为class Person(object): def __init__(self, name, score): self.name=name self.__score=score def get_grade(self): if self.__score>=80: return 'A' elif self.__score>=60: return 'B' elif sel...
2019-05-09
最赞回答 / 宝慕林6305465
借用一切都是浮云何必刻苦铭心的答案:sorted(iterable[, cmp[, key[, reverse]]]) sorted 这个函数接受这3个关键词,key表示排序的元素,比如一个人的信息,可以从名字排序, 可以从年龄排序,这就...
2019-05-07
最赞回答 / 划水人
课程里不是有提到嘛,就是降低调用的难度。比如你需要输出很多数字的二进制形式。print(int(1, base = 2))print(int(2, base = 2))print(int(3, base = 2))......通过你新建的函数(其实就是把base参数内置进了你的新函数里)再调用的时候就是:print(intNew(1))print(intNew(2))print(intNew(3))......因为例子只有base一个参数,如果默认参数有几十个,而且固定,你每次调用就要输入几十个参数,但是...
2019-04-25
最赞回答 / doudou20
//这里r 调用的f函数是参数吗?和performance(f)一致吗? 是一致的//请问这个是固定格式吗,必须输出call XXX () in XXX 吗? 不是固定的,根据自己需求输出就可以//为什么要返回r,也就是为什么返回f函数? 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。比如有输出日志的需求,不用在每个逻辑函数内都写一段相同的代码。
2019-04-24
最赞回答 / 慕标7383595
首先,str和repr都是将类的实例变为字符串的形式输出,其次,如果找不到str,会找repr,如果两者都没有,能正常运行,但是只是打印出了类实例的名称及内存地址,这才是输出错误的原因。
2019-04-23
最赞回答 / 桐人的星光
__add__自定义加法运算,两个分数进行加法运算会调用,调用加法函数返回有理数Rational函数(分子,分母).self是其中一个分数,r是另外一个分数,则分数计算法则[(s(self)的分子*r的分母 +s的分母 * r的分子)]—>(整个就是结果的分子),(s的分母*r的分母)—>(整个就是结果的分母)====如1/3+2/5=5/15+6/15=11/15,__str__则是自定义函数(字符串),返回字符串格式输出格式(p(分子)/q(分母)分数)
2019-04-22