玩了两年的python,才知道if、try、for等语句并不会产生新的作用域

2013-08-09 15:34:45 +08:00
 larkifly
如题, 作用域由def、class、lambda等语句产生,if、try、for等语句并不会产生新的作用域。

一直以为if,try,for都会产生作用域,哈哈。too young too simple
8837 次点击
所在节点    Python
30 条回复
davepkxxx
2013-08-09 15:37:24 +08:00
擦,刚知道。
cxh116
2013-08-09 15:38:19 +08:00
js,ruby也是
cxe2v
2013-08-09 16:12:00 +08:00
什么叫做作用域?
larkifly
2013-08-09 16:52:58 +08:00
@cxe2v 这个.........请google
larkifly
2013-08-09 16:54:09 +08:00
@cxh116 这两种语言都没学习过了,我在想php是不是也是这样的?
lycheng
2013-08-09 16:54:32 +08:00
也是前几天才刚知道啊
cj1324
2013-08-09 16:59:45 +08:00
一直知道 他的作用域是方法级别的.
但是还是喜欢在 if 外面加一个 xxx = None 算是强迫症吧~
larkifly
2013-08-09 17:01:50 +08:00
@cj1324 我也是,哈哈,可能之前我写C形成的习惯吧
felix021
2013-08-09 17:05:17 +08:00
@cj1324
握爪…… 有的时候会觉得,别人会看这个代码的,小心被砍。
cj1324
2013-08-09 17:09:02 +08:00
关键是有一种情况. if 判断不通过 ,但是下面却用了这个变量. 为None 的话 比较可控。
cxe2v
2013-08-09 17:12:48 +08:00
@larkifly 哈哈,我是来恶搞的你看不出来么
cxe2v
2013-08-09 17:13:03 +08:00
@larkifly 哈哈,我是来恶搞的
wenbinwu
2013-08-09 17:15:24 +08:00
larkifly
2013-08-09 17:42:44 +08:00
@cxe2v 好吧,我太善良了
behappy
2013-08-09 18:30:02 +08:00
怪不得前几天写js出现了自认为奇怪的事情 =。=
micoo
2013-08-09 18:37:29 +08:00
啊哦,只学了JS、PHP,就知道这两个不会......
pandada8
2013-08-09 19:21:56 +08:00
- =大约从C系入门的都会被这个坑……
//今天刚刚被js坑进……
Perry
2013-08-09 19:27:45 +08:00
就是scope吧,也被js坑过。。
sunchen
2013-08-09 21:14:45 +08:00
我擦,我必须要去检查下我的python代码了。。算了,我连这个都不知道,写的代码肯定是渣了,删了算了
binux
2013-08-09 21:16:03 +08:00
还有 for i in x:
这个i在for完了之后依然存在

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/78568

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX