我惊喜地发现带有 PyDev 的 Eclipse 能够猜测大多数变量的类型并帮助显示成员列表。我正在学习 Python,我认为我应该忘记强类型语言的所有优点,但看起来我错了。
我想知道 IDE(甚至 Python 解释器)能走多远。我在下面的代码段中定义了一些模块级变量,我希望 IDE 知道它们的类型。
关于 IDE 的问题 1:是否可以声明变量的类型以便代码完成知道其成员?
关于 Python 的问题 2:是否可以声明变量的类型,以便在执行期间更改类型时收到警告?
例如,将光标c.
放在以下代码段上的第一个之后并按下ctrl+space
,第一个建议是val
. 耶!
Python 变量是动态的,它们的类型可以改变,而这个技巧在第二种情况下不起作用,c.
因为 Eclipse 无法知道c
在模块级别定义并使用 infunc2
将在func1
.
c = None
class MyClass:
val = 0
def func1():
c = MyClass()
print c. # Eclipse knows that val is a member of c
def func2():
print c. # Eclipse doesn't know that val is a member of c