已采纳回答 / 就买你
在python中,函数为标准用语,在其他语言中,如java,net,函数也可叫方法。所以,两者本身是一体的,本质一样。但是在python这种动态语言中,由于是弱类型的原因,本身函数使用相当灵活,和javascript类似,不像强类型那样分的很清楚,在面向对象如类的定义和使用中,便利了很多,当然也容易出错。
2017-06-21
已采纳回答 / 慕妹9163764
在定义class,function,method时 可以用pass来完成一个“完整”的定义,无需return,无需表达式等等,解释器将其视为正确的代码块。
2017-06-20
已采纳回答 / qq_给点面子别烦我_04084453
函数签名就是一个函数的标识,作用于函数重载中应用很多,包括了函数名和参数个数与类型,这里把函数的参数类型和个数都变化了,所以得不到原函数的参数信息
2017-06-20
最新回答 / 小雷2012
代码改为print filter(lambda s:len(s.strip()) > 0, ['test','str','END'])因为前面的函数需要返回的是True或者False,而你返回的是S,并不是布尔值
2017-06-19
已采纳回答 / _Leon_
%s,%fs都是占位符,对应后面的 f.__name__,(t2-t1)所以就是打印'call f.__name__() in (t2 - t1)'
2017-06-17
最新回答 / 王从磊
当调用calc_prod([1, 2, 3, 4])时,返回的是lazy_prod函数,但是还有没执行,如果lazy_prod 要接受lst参数的话,在print f() (此时f其实就是lazy_prod),还要传入lst参数
2017-06-16
最新回答 / qq_乐之终曲_0
因为__count属性是内部私有的,而内部是指Person类里面的,也就是Person类下面前面带空格的那部分,剩下的从p1 = Person('Bob') 开始都属于外部,因此你在打印__count是在外部打印的,调用不到内部的,所以报错
2017-06-14
最新回答 / 慕粉3186754
加个括号是可以的,但是返回的fs中三个元素就都是数字了,不能再调用,直接打印就好,如下:def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f()) return fs f1, f2, f3 = count()print 'f1=',f1print 'f2=',f2print 'f3=',f3
2017-06-13
最赞回答 / qq_苦笑_8
对于math.sqrt这个函数返回的值是double类型的,例如sqrt(25)的返回值就是5.0,所以不论这个值开方之后是不是整数,返回值都是双精度类型
2017-06-13