Здесь много чего не так.
Ваш код, как показано, незаконно с отступом;похоже, что __init__()
и play()
должны быть с отступом, чтобы быть членами класса Engine, а death()
и princess_lives_here()
с отступом в Map.
__init__
класса требует двойного подчеркивания, а неодиночные, на каждом конце.
Строка:
e = "princess_lives_here".Map.Engine
- бессмысленный питон;он начинается с попытки найти атрибут «Карта» в строке.Если вы хотите создать экземпляр нового объекта класса, вы бы сказали:
e = Engine( "princess_lives_here" ) # or Map( "...")?
Мне неясно, для чего вам нужны и карта, и движок, но я предполагаю, что вы либо хотите, чтобы карта былаподкласс Engine (Engine является общим для всех игр, а карта является специфическим для этой игры), или вы хотите, чтобы они были отдельными объектами, где Engine и Карта ссылаются друг на друга.
В таком виде, как у вас естьДвигатель как подкласс Map.Если они должны быть разделены, объявите Engine как объект, сделайте так, чтобы __init__
взял и начальную точку, и экземпляр карты, и выполните
m = Map()
e = Engine( m, "princess_lives_here" )