python函数加括号于不加括号的区别:
不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不须等该函数执行完成
带括号(参数或者无参),调用的是函数的执行结果,须等该函数执行完成的结果
if __name__ == '__main__': 的作用
一个python文件通常有两种使用方法:
第一是作为脚本直接执行
第二是 import 到其他的 python 脚本中被调用(模块重用)执行。
因此 if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在 if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。
从就近的作用域中寻找变量:
一直找到最外层,没有发现变量的定义,报错:
在内层作用域(高楼层)直接修改报错:
解决方法,在内层定义 global 全局变量:
"不动手"是指不立刻执行函数 , fn() 执行 fn 不执行
返回的为函数体对象
参考
5句口诀理解记忆Python闭包和装饰器