最赞回答 / 慕标9241536
调用dec函数时返回的是内部函数in_dec的函数地址(不带参数返回的就是函数地址),直接返回函数地址是为了这个函数的可重用性,以便下一个具有同样性质的函数(例如my_average)也可以进行相同的判断(先执行in_dec里面的判断,再调用my_sum()函数或者my_average( )函数进行计算)带了参数值就代表正式调用这个函数。它执行逻辑是 调用dec函数-->返回in_dec地址-->自身就是in_dec了-->执行in_dec里的判断并返回sum()函数对*arg的处理结果...
2017-09-07
已采纳回答 / 一只_废喵
Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。当你在编写一个程序时,执行语句部分思路还没有完成,这时你可以用pass语句来占位,也可以当做是一个标记
2017-08-13
最新回答 / 慕粉2104286862
因为分数线不同,要编写不同的set_passline函数,但是各个set_passline()中用于判断是否及格的cmp()函数是一样的代码。用了闭包,也就是节省了编写比较函数cmp()的代码。也就是重用了cmp()比较函数的代码。至于你说的两个参数,是那么第二个参数传进来也要在比较时多写基于第二个参数的代码(在此琢磨一下),当n多个参数就写重复的n多次
2017-08-05
最新回答 / 高山之蓝
你说的是应该是外部函数my_sum作为一个变量写入in_dec函数成为它的属性。每次调用都会先按程序顺序进行判断,到return才是调用外部求和函数,而这个外部函数已经存在in_dec中,会直接取用外部函数的。每次调用的外部函数是不变的(作为元组写在函数里面)-。-
2017-05-04
最赞回答 / abbby
是的,执行 "func_100=set_passline(60)"的时候, 把60赋给set_passline函数的变量passline,在且内部函数cmp引用了外部变量passline,此时cmp.__closure__加上了passline变量的地址。执行完set_passline将cmp函数的地址赋给func_100, 所以func_100实际上就是内部函数cmp
2017-04-13
最新回答 / huohuohuo123
print 格式化输出,如:print ("His name is %s"%("Aviad")) 输出结果:His name is Aviad
2017-02-06
最赞回答 / haoming
python解释器在解引用一个变量时遵循所谓‘legb’原则。
即,首先在local即局部作用域中查找变量声明和值,如果没有找到,在函数的__closure__属性中查找变量(只有闭包函数要考虑)即enclosing,如果还没有找到则在全局作用域中查找变量即global,如果还是没有找到则在built-in的变量中查找,也就是python的关键字和默认的全局函数(e.g. list tuple open print)
2016-09-21