저는 현재 Python을 배우기 시작했습니다. 나는 수업을 사용하여 게임을 만들었습니다. 하지만 이제는이 클래스들을 다른 파일에 넣고 메인 파일에서 가져와야합니다. 지금 당장 가지고 있습니다 :모듈 가져 오기 및 인스턴스 만들기
a_map = Map("scene_1")
game = Engine(a_map)
game.play()
모듈을 사용하여 이런 인스턴스를 만들 수없는 것 같습니다.
a_map = __import__('map')
game = Engine(a_map)
game.play()
을하지만 잘못 여기 무슨 일이야 나에게 오류
AttributeError: 'module' object has no attribute 'first_scene'
을 제공합니다 : I 시도? 이들은 엔진 /지도 클래스입니다 :
class Engine(object):
def __init__(self, map):
self.map = map
def play(self):
current_scene = self.map.first_scene()
while True:
next = current_scene.enter() #call return value of the current scene to 'next'
current_scene = self.map.next_scene(next) #defines the subsequent scene
및
class Map(object):
scenes = {"scene_1" : Scene1(),
"scene_2" : Scene2(),
"scene_3" : Scene3()
}
def __init__(self, start_scene):
self.start_scene = start_scene
#defines the first scene, using the 'scenes' array.
def first_scene(self):
return Map.scenes.get(self.start_scene)
#defines the second scene, using the 'scenes' array.
def next_scene(self, next_scene):
return Map.scenes.get(next_scene)
나는 프로그래밍 /이 웹 사이트에 새로운 해요. 너무 적은/너무 많은 스크립트 정보를 주시면 알려 주시기 바랍니다. 미리 감사드립니다!
감사를 수행 할 수 것, 모듈에서 특정 항목을 가져올 수 있습니다! 시도 할 때 : '지도 가져 오기에서' 오류가 있습니다 : 'ImportError : 이름 맵을 가져올 수 없습니다'. '가져 오기 맵'을 시도하면 다음 오류가 표시됩니다. AttributeError : '모듈'객체에 '맵'속성이 없습니다. 파일들은 모두 같은 디렉토리에 있습니다 ... – Felix
Felix - Map 클래스를 포함하는 파일의 이름은 무엇입니까? 확실히 map.py입니까? 파이썬 인터프리터는 지정한 이름을 가진 모듈에 대해 실행중인 스크립트와 동일한 디렉토리를 검색합니다. – melipone
나는 'ex45files.py'(주 파일), 'map.py'(지도 클래스 포함), 'engine.py'(엔진 클래스 포함)의 세 파일을 가지고있다. 그 3을 정확히 같은 디렉토리에 넣겠지만, 오류가 발생합니다 : AttributeError : 'module'객체에 'Map'속성이 없습니다. 코드 사용 : 'a_map = map.Map ('scene_1 ') game = engine.Engine (a_map) game.play()' 나에게 새로운 것은 메인 파일 (ex45files)을 실행할 때입니다. py), 그것은 3 개의 파일 모두에 대해 '.pyc'파일을 만듭니다 ... – Felix