在Pycharm中,声明为全局变量的局部函数内不自动补全
在使用 pycharm 3.1 和 python3 的时候,如果我输入一些简单的代码,比如
v = ['z', 'e', 't', 'z']
def foo():
v.sort()
print(v)
它会很顺利地自动补全,识别出 v 是一个列表,并且在自动补全的结果中显示 sort() 方法。
但是如果这个变量是在函数内部定义的,pycharm 就不再把它识别为列表,也不会进行自动补全。
v = ['z', 'e', 't']
def foo():
global v
v.append('o')
v.sort()
print(v)
在函数内部的任何地方,即使我在 v 前面加上 global,pycharm 也不会自动补全这个变量 v。
这是因为 python 本身有什么逻辑原因我不知道吗?还是说这可能是 pycharm 的一个 bug?
1 个回答
0
我试了你给的例子,使用了 ipython,发现自动补全功能正常,所以这可能是pycharm的问题。
需要注意的是,在Python中不太推荐使用全局变量,除非你有非常好的理由。