저는 파이 게임을위한 더미 코드를 작성하고 있습니다.모듈에서 클래스 함수를 호출합니까?
첫 번째 코드 샘플은 menus.py 파일에 함수가 있습니다. 나는 수입을 사용하여 연습하고 싶었다. 이것은 잘 작동합니다. 그런 다음 클래스에 함수를 추가하여 클래스를 만들었습니다. 이것은 두 번째 코드 블록입니다. 불행하게도 두 번째 코드 블록은 실행되지 않습니다. 누군가 내가 잘못 가고 있다고 설명 할 수 있었습니까?
# menus.py
def color_switcher(counter, screen):
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
red = (255, 0, 0)
colors = [black, white, green, red]
screen.fill(colors[counter])
# game.py
#stuff
if event.type == pygame.MOUSEBUTTONDOWN:
menus.color_switcher(counter, screen)
#more stuff
이 작동합니다.
이하지 않습니다
# menus.py
class Menu:
def color_switcher(self, counter, screen):
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
red = (255, 0, 0)
colors = [black, white, green, red]
screen.fill(colors[counter])
# game.py
#stuff
if event.type == pygame.MOUSEBUTTONDOWN:
menus.Menu.color_switcher(counter, screen)
#more stuff
#TypeError: unbound method color_switcher() must be called with Menu instance as first argument (got int instance instead)
누군가가 내가 클래스하시기 바랍니다 잘못 뭐하는 거지 말해 주시겠습니까?
참고 : Python 2를 사용하는 경우'class Menu :'대신'class Menu (object) :'를 사용해야합니다. –
'staticmethod','classmethod' 및 일반적으로 객체 인스턴스에 대해 읽어야 할 것들.또한 파이썬에서 인스턴스 데이터가 없다면 --- 클래스의 모든 "메소드"가 정적 메소드이고'self'를 사용할 필요가 없다는 것에주의하십시오. 일반적으로 클래스를 사용해서는 안됩니다. 모듈에서 함수를 사용하십시오. 그들은 나쁘지 않다. –
고마워, 내가 추가했지만 오류가 여전히 발생하고 있습니다. 편집 : 나는 클래스 문서를 읽고있다. 이것이 내가 지금까지 얻은 방법이지만, 나의 훈련받지 않은 눈이 내 코드 샘플에 별다른 차이가 없다는 것을 알 수있다. – JohnnyFive