0
我想爲從bgImages
創建的每個實例分配一個單獨的函數,以便在調用instance.collisiontext
時調用該函數。我覺得我做錯了什麼。如果您在構建中向下看,您可以看到我創建實例並將函數分配給collidetext
的示例。如何正確地將函數傳遞給Python中的另一個函數
collisiontext
方法的全部意義在於調用分配給collidetext
的函數(這對每個實例來說都是不同的函數)。
我在這裏做錯了什麼?
此外,當給實例貧民區分配函數時,是否需要在'semumnotice'之後保留'()'?
class BgImages(ButtonBehavior, Image):
def __init__(self, **kwargs):
super(Npcs, self).__init__(**kwargs)
self.collidetext=''
def collisiontext(self,**kwargs):
global collidetext
return collidetext()
class MainCharacter(Image):
def __init__(self, **kwargs):
super(MainCharacter, self).__init__(**kwargs)
self._keyboard = Window.request_keyboard(None, self)
if not self._keyboard:
return
self._keyboard.bind(on_key_down=self.on_keyboard_down)
self._keyboard.bind(on_key_up=self.on_keyboard_up)
elif keycode[1] == 'up':
for i in listofwidgets:
if i.collide_point(self.x,self.top):
self.y -=1
i.collisiontext()
class gameApp(App):
def build(self):
slum=BgImages(source='slum.png', collidetext=slumnotice())
listofwidgets=[]
listofwidgets.append(slum)
我不完全確定你用kwargs ['collidetext']做了什麼 – david
這是一本字典。我訪問並改變了它。 –
爲什麼?無論如何,這給了我錯誤,'KeyError:'collidetext'' – david