получить два класса для взаимодействия - PullRequest
0 голосов
/ 23 июля 2011

У меня проблемы с взаимодействием двух классов. Вот код для первого класса, куда я импортирую файл youtest.py:

from youtest import MyTest   

class RunIt(object):

  def __init__(self):
    self.__class__ = MyTest

r = RunIt()
r.iffit()

Я пытаюсь запустить класс MyTest через этот класс (код ниже):

from sys import exit

class MyTest(object):

  def death(self):
    exit

  def iffit(self):

    oh_no = raw_input(">")

  print "What is your name?"

  if oh_no == "john":
    print "welcome john"

  else:
    print "game over"
    return 'death'

когда я запускаю это, я получаю следующее:

Файл "youtest.py", строка 19 вернуть «смерть» SyntaxError: «возврат» вне функции

Надеюсь, этот вопрос достаточно ясен, спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 23 июля 2011

Строки, начинающиеся с print "What is your name?", не имеют правильного отступа.В питоне пробелы значительны.

0 голосов
/ 23 июля 2011

В Python это не то, как создавать подклассы.

from youtest import MyTest   

class RunIt(MyTest): pass

r = RunIt()
r.iffit()

Хотя в этом примере r = MyTest() будет работать нормально.

Ваш SyntaxError вызван неправильным использованием пробелов. Используйте четыре пробела для каждого уровня отступа, как это стандартно в Python, чтобы вы могли четко видеть организацию вещей.

У вас есть другая проблема: return 'death' не будет звонить death, вам нужно return death(), если вы этого хотите.

Наконец, death() не будет ничего делать с exit, просто укажите это. Вам нужно сделать exit().

...