最赞回答 / 巫山2016
我是个新手,下面是我的理解,有不当的部分请高手指正:我的理解是这样的:所谓的修饰就是重新编写一个高阶函数new_fn(),把要修饰的函数f1()作为参数传递给高阶函数new_fn(f1)。代码应该是这...
2016-09-05
最新回答 / 太阳蚣蚣粗来鸟
f1和f2和f3都指向了count()这个函数 , count()的返回值是一个单元素list , 因为闭包 , 所以第一次count()引用的变量为1 , 第二次为2 , 第三次为3 , 此时f1指向的依然是变量为1的count(), 所以实现f1的时候 , 返回变量为1的count()的值
2016-09-04
最赞回答 / 井水深
主要是为了输出好看, 如:有括号的时候输出: call test() cost.... 没有括号就成了 call test cost..., 就是输出美观吧。
2016-08-31
最赞回答 / 井水深
这个就如例子@log("debug")或@log("info")是一样的, 如果直接@log(f)的话就不能传入debug或是info了,这个@performance(unit)也是一样的道理,细细体会吧。
2016-08-30
最赞回答 / Ryan2017
模块类似于文件,包类似于文件夹。为了区分包和目录文件夹,在每个包下面有个__init__.py(可以是个空文件,仅仅用作区分),这样就可以区分包和普通目录了。
2016-08-27
最赞回答 / kisssaisai
*args代表的是任意参数,也就是可以是位置参数,可以是任意多个,也就是说def g(x,y,z....):这其中的x,y,z...就是任意参数;而**kw表示的是关键字参数,也就是def g(x=1,y=2,z=m.....)这里的x=1,y=2,z=m就是关键字参数,其实任意参数是用来收集参数的,返回一个元祖对象,而关键字参数用来返回一个字典对象。希望能帮到你。
2016-08-26