模块龟没有写成员

时间:2018-03-27 08:43:47

标签: python visual-studio-code windows-10 turtle-graphics

我在VS Code上使用Python,虽然我仍然在学习编码,但我对此感到有些困惑。

我正在运行此代码:

import scipy.integrate
import turtle

ans, err = scipy.integrate.quad(lambda x: x**2,0.,4)

print(ans) 
turtle.write(ans, font=("Comic Sans", 40, "normal"))

当我运行调试器时,标记了乌龟,并且lint说乌龟没有写入成员,对吧。 我没有调试就运行了代码,弹出了正确的窗口,但是半秒后关闭了。所有这一切,即使我在我用乌龟写的最后一行标记了休息。

要查看我的代码是否有问题,我在PY shell中运行它并且它运行良好,没有问题。

我猜这个问题是VS Code特有的,虽然我不确定它是如何导入龟的(我应该只导入函数即时使用?)

1 个答案:

答案 0 :(得分:1)

  

当我运行调试器时,标记了乌龟,并且lint说那只乌龟   没有写成员

Turtle暴露了两个接口,一个是功能接口,一个是面向对象的接口。功能界面在加载时导出,因此静态分析工具看不到它,因此也就是皮棉错误。而不是功能接口:

import scipy.integrate
import turtle

ans, err = scipy.integrate.quad(lambda x: x**2, 0.0, 4)

turtle.write(ans, font=("Comic Sans", 40, "normal"))

尝试使用面向对象的界面:

import scipy.integrate
from turtle import Turtle, Screen

ans, err = scipy.integrate.quad(lambda x: x**2, 0.0, 4)

yertle = Turtle()

yertle.write(ans, font=("Comic Sans", 40, "normal"))
  

正确的窗口会弹出,但会在半秒后关闭

乌龟程序通常以调用mainloop()方法(屏幕)或函数结束。这将事件处理转交给tkinter。有些编程环境并不需要它,但我相信他们知道要禁用它。添加对.mainloop()的调用作为代码中的最后一项内容,以查看是否可以解决您的问题:

screen = Screen()
screen.mainloop()