大家帮看看问题在哪

2019 年 3 月 8 日
 imgse
大家帮我看看,这个啥错误。
def ss():
global t
print(t)
t=True

t=False
ss()

在 vscode 里面一直报错:
Using variable 't' before assignment

提示未声明,但一开始用 global 声明了。运行起来也没问题,大家帮我看看问题在哪?
2969 次点击
所在节点    Python
13 条回复
aiver
2019 年 3 月 8 日
t = False 语句放到函数 ss 定义的前面
wallriding
2019 年 3 月 8 日
assignment 的意思不是“声明”,是“赋值”
ballshapesdsd
2019 年 3 月 8 日
可能 vscode 还没有那么智能吧,智能检测到在 ss 函数里没有对 t 赋值
imgse
2019 年 3 月 8 日
@wallriding 写错了
imgse
2019 年 3 月 8 日
@aiver 这样写也不算错啊,我感觉是 vscode 的 linter 有错误。
Johnson66
2019 年 3 月 8 日
你这个格式~~!!
0ZXYDDu796nVCFxq
2019 年 3 月 8 日
你们没缩进也能看得懂,好厉害!!!
catalina
2019 年 3 月 8 日
@gstqc 长一点就看不懂了(笑)
imgse
2019 年 3 月 8 日
@gstqc 编辑了好几次,一发布就把空格给我取消了。
jingxyy
2019 年 3 月 8 日
不用管它,py 这种语言 linter 能发挥的功能很有限,写几个 meta class 的它就看不懂了。
就 lz 的这个例子,也不一定说你写的这个就完全没问题,万一
t = False
#...(好多 code)...
del t
#...(好多 code)...
#...(好多 code,然后你忘了你已经 del 了)...
ss()
你猜结果会是什么样?
antipro
2019 年 3 月 8 日
现在明白大括号的用处了吧。
wuyifar
2019 年 3 月 8 日
一样的代码,一样是 VScode 直接运行没有报错
ashCloud
2019 年 3 月 12 日
你的声明现在函数里了,函数是后调用的。

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

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

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

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

© 2021 V2EX