为什么我收到名称错误:未定义函数

时间:2017-10-15 16:13:45

标签: python kivy

我正在用python编写一个kivy应用程序。我在同一个小部件中定义了两个函数(update和on_touch_down)。第二个功能是内置" on_touch_down"函数调用第一个函数。想法是在用户点击屏幕时调用第一个函数。但是,一旦我运行应用程序并单击屏幕,就会收到错误:

File : "main.py", line 57, in on_touch_down
   update()
NameError: name 'update' is not defined

以下是导致问题的代码:

class childWidget(Widget):
    def update():
        for s in range(len(root.markers)):
            root.map.remove_marker(root.marker[s])
        root.markers.clear()
        cursor.execute( "SELECT * FROM aircraft;")
        new_table = cursor.fetchall()

        for row in new_table():
            markers.append(MapMarker(lon= row[2], lat=row[1], source='if_plane-b_86362.png'))
            root.map.add_marker(MapMarker(lon= row[2], lat=row[1], source='if_plane-b_86362.png'))

    def on_touch_down(self,touch):
        update()

1 个答案:

答案 0 :(得分:3)

您必须更改以下行:

创建update()方法时的第2行:

def update(self):
调用方法时

和第14行:

self.update()