저는 여전히 파이썬을 배우고 있으며 새로운 인스턴스를 만드는 것에 대해서는 약간 혼란 스럽습니다. 이 예제의 맨 아래에서 BgImages의 인스턴스를 만듭니다. 나는 문자열을 할당하고 싶었 기 때문에 collidetext = "this is a test"를 추가하고 BgImages 생성자에 들어가서 단순히 self.collidetext = "임의의 문자열"을 넣었습니다. 문제는 내가 slum.collisiontext를 인쇄 할 때, "이것은 테스트입니다"가 아니라 "임의의 문자열"을 계속 출력한다는 것입니다.작성 중에 인스턴스에 속성을 지정하는 방법은 무엇입니까?
나는 다른 사람들로부터 도움을 요청했으며, 이제는 그 사람들과 관련이 있다는 것을 이해하고 있습니다. ** kwargs는 내가하려는 것을 허용하지 않을 것입니다. 누군가가 내가 성취하려는 것을 달성 할 수있는 방법과 내가하는 일이 왜 (평신도의 관점에서) 효과가 없는지를 말할 수 있기를 바랬다.
class BgImages(ButtonBehavior, Image):
def __init__(self, **kwargs):
super(Npcs, self).__init__(**kwargs)
self.collidetext="random string"
def collisiontext(self,**kwargs):
return self.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)
class gameApp(App):
def build(self):
slum=BgImages(source='slum.png', collidetext="this is a test1")
police=BgImages(source='police.png', collidetext="this is a test2")
listofwidgets=[]
listofwidgets.append(slum)
listofwidgets.append(police)
source = None으로 설정하면 모든 이미지가 사라지기 때문에 하단 예제를 사용 했으므로이 부분을 제거했습니다. – david
도움을 주셔서 감사합니다. 그러나 원본이 없으면 작동하지 않는 이유는 알 수 없습니다. = 없음 – david
그렇기 때문에 나는 파이썬 튜토리얼로 시간을 할애 할 것을 제안했다. 예를 들어 [공식 Python 튜토리얼의 4.6 및 4.7 절] (https://docs.python.org/2/tutorial/controlflow.html#defining-functions)에서는 함수 매개 변수에 대해 자세히 설명합니다. –