名称空间与作用域:内置、全局、局部
定义在开始的都是全局名称,全局作用域。先是找自己——》找全局——》找内置——报错
函数都是先定义,后使用,在定义阶段只检测语法错误,实用阶段检测逻辑错误
函数嵌套:嵌套定义,嵌套调用
函数是第一类对象,函数相当于变量,变量可以干的他都可以干,做参数,传值,等

闭包:内建函数包含对外部作用域的引用。
装饰器:作用就是为一个对象添加新功能,但是不改变原函数的代码,其基础的语法
@timmer 实质就是将@下面的函数作为一个参数传值给timmer()里面 并把返回值返回给源函数
遇到装饰器的时候 index=timmer(index)

格式如上,有内建函数的应用。

传参数的时候要用*args and **kwargs才更方便其他函数灵活调用而不出错
带参数的装饰器的实例子


eval() 内建函数,去除字符串里面的引号,
有参函数的装饰器,是在无参函数外面加一个外部函数就可以了,这样形成闭包
网友评论