2015-03-09 2 views
1

Я пытаюсь научить себя Python и создал файл, который проходит через различные наборы заданий, распространяемые по классам. В конце этого файла я хочу обобщить все мои исходные данные.Python - Получение значений из методов в других классах

К сожалению, я изо всех сил пытаюсь получить доступ к этим значениям из отдельного класса. Я сломал кодирования вниз в тестовый пример, чтобы продемонстрировать структуру моей программы:

class QuestionSet(object): 
    next_set = 'first_set' 

class ClaimEngine(QuestionSet): 

    def current_set(self): 
     last_set = "blank" 
     while_count = int(0) 
     quizset = Sets.subsets 
     ParentSet = QuestionSet() 
     while ParentSet.next_set != last_set and int(while_count)<50: 
      quizset[ParentSet.next_set].questioning() 
      while_count = while_count+1 

class FirstSet(QuestionSet): 

    def questioning(self): 
     value1 = raw_input("Val1") 
     QuestionSet.next_set = "second_set" 

class SecondSet(QuestionSet): 

    def questioning(self): 
     value2 = raw_input("Val2") 
     QuestionSet.next_set = "summary" 

class Summary(QuestionSet): 
    print "test" 
    ## I need to print a summary of my inputs here ## 
    ## e.g. Print "The answer to value1 was:%r" %value1## 

class Sets(object): 
    subsets = { 
    'first_set': FirstSet(), 
    'second_set': SecondSet(), 
    'summary': Summary() 
    } 

Я попытался определения в кратком описании каждого класса, например, 1stSet = FirstSet(), а затем FirstSet.value1 и т. Д., Но безрезультатно.

Если у кого-то есть предложения по извлечению этих значений, это было бы здорово, поскольку я написал огромную программу, полную вопросов и упал при последнем препятствии!

спасибо.

ответ

1

Значения, которые у вас есть в каждой функции классов, не создаются как члены класса. Для вашего приложения вам необходимо создать переменные-члены, которые сохраняют значения внутри класса.

Например:

class FirstSet(QuestionSet): 
    def questioning(self): 
     self.value1 = raw_input("Val1") 
     QuestionSet.next_set = "second_set" 

Теперь value1 переменная член вы можете получить к нему доступ.

В случае примера, вы имеете над ним, вероятно, будет что-то вроде ниже линии, чтобы получить доступ к value1 от «» first_set

subsets['first_set'].value1 

Если вы не знакомы с этим попробовать this tutorial

+0

Это невероятно полезно, я очень ценю это! Я попробую ваше предложение и дам вам знать. Еще раз спасибо. – LemusThelroy

+0

Я попробовал ваше предложение, и это сработало. Еще раз спасибо. – LemusThelroy