代码之家  ›  专栏  ›  技术社区  ›  LemusThelroy

Python-从其他类中的方法检索值

  •  1
  • LemusThelroy  · 技术社区  · 9 年前

    我正在努力自学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()
        }
    

    我曾尝试在Summary中定义每个类,例如1stSet=FirstSet(),然后是FirstSet.value1等,但没有成功。

    如果有人对如何检索这些值有任何建议,那将是非常好的,因为我已经编写了一个充满问题的大型程序,并且已经在最后一个障碍上跌倒了!

    非常感谢。

    1 回复  |  直到 9 年前
        1
  •  1
  •   user3590169    9 年前

    类的每个函数中的值不会作为类成员创建。对于您的应用程序,您需要创建存储类中值的成员变量。

    例如:

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

    现在value1是一个成员变量,您可以访问它。

    在上面的示例中,从“first_set”访问值1可能与下面的行类似

    subsets['first_set'].value1
    

    如果你不熟悉这个 this tutorial