Tom学编程 发表于 2020-8-18 10:25:45

代码理解问题

请问第12行是什么意思?

1 #闭包函数的实例
2 # outer是外部函数 a和b都是外函数的临时变量
3 def outer( a ):
4   b = 10
5   # inner是内函数
6   def inner():
7         #在内函数中 用到了外函数的临时变量
8         print(a+b)
9   # 外函数的返回值是内函数的引用
10   return inner
11
12 if __name__ == '__main__':
13   # 在这里我们调用外函数传入参数5
14   #此时外函数两个临时变量 a是5 b是10 ,并创建了内函数,然后把内函数的引用返回存给了demo
15   # 外函数结束的时候发现内部函数将会用到自己的临时变量,这两个临时变量就不会释放,会绑定给这个内部函数
16   demo = outer(5)
17   # 我们调用内部函数,看一看内部函数是不是能使用外部函数的临时变量
18   # demo存了外函数的返回值,也就是inner函数的引用,这里相当于执行inner函数
19   demo() # 15
20
21   demo2 = outer(7)
22   demo2()#17

1q23w31 发表于 2020-8-18 10:30:00

https://www.jb51.net/article/51892.htm
看这个

tttxiaoz 发表于 2020-8-18 10:34:41

当前脚本被别的模块导入后不执行main下面的代码

Tom学编程 发表于 2020-8-18 11:05:28

ok明白了,谢谢

lbf4325 发表于 2020-8-18 11:18:29

1、__name__ 是python的一个属性,保存一个字符串;


2、每一个pyton文件都是一个模块,当导入模块时,模块中没有缩进的代码都会执行一遍,而模块可能会有一些测试代码,测试代码只是测试模块是否ok时需要执行,被导入时不需要它发挥功能功能,所以要想代码被其他模块导入时,这些测试代码不执行就可以将测试代码放到__name__ =="__main__"下面;


3、当模块A没被导入,运行A时__name__属性中保存的是"__mian__"这个字符串,当执行到if __name__=="__mian__" 下面的代码就会执行;
   当模块A被导入时__name__属性中保存的是模块的名字;也就是__name__ =="模块名"所以当被导入执行到if__name__ =="__main__"这个条件是不
   成 立的,它下面的代码就不会执行!


4、这点是最重要的,对你有用的话赶紧设个最佳答案{:5_97:}

lbf4325 发表于 2020-8-18 11:24:27

妹的刚写完就设了最佳   忙活了半天{:10_266:}

Tom学编程 发表于 2020-8-18 11:34:49

lbf4325 发表于 2020-8-18 11:24
妹的刚写完就设了最佳   忙活了半天

不好意思了,不过还是谢谢你!
页: [1]
查看完整版本: 代码理解问题