Pygtk: 名称未定义
我正在尝试一些pygtk的教程,遇到了一个看起来很明显的新手错误,但我就是搞不清楚到底发生了什么。
错误信息:
Traceback (most recent call last): File "main.py", line 8, in class Base: File "main.py", line 61, in Base cv.set_line_width(9) NameError: name 'cv' is not defined
代码如下:
def expose(self, widget, data=None):
cv = widget.window.cairo_create()
cv.set_line_width(9)
cv.set_source_rgb(0.7, 0.2, 0.0)
w = self.window.allocation.width
h = self.window.allocation.height
cv.translate(w/2, h/2)
cv.arc(0, 0, 50, 0, 2*math.pi)
cv.stroke_preserve()
cv.set_source_rgb(0.3, 0.4, 0.6)
cv.fill()
这是完整的源代码:http://gist.github.com/655728
3 个回答
0
这个问题是通过把缩进方式从制表符(Tab)改成4个空格来解决的,然后重新调整了整个文件的缩进。
发生了一些奇怪的事情,gedit这个编辑器显示的缩进都很整齐,而Netbeans却显示了缩进出错的地方。
1
你在GitHub上的代码是:
def expose(self, widget, data=None):
selcv = widget.window.cairo_create()
cv.set_line_width(9)
cv.set_source_rgb(0.7, 0.2, 0.0)
...这就能解释为什么当你尝试访问cv时,它没有被定义。
0
你的文件里混合了制表符和空格。