从函数中打印Python

时间:2016-10-22 13:06:51

标签: python function class printing

对于假期结束后我学校工作的更大项目,我需要知道如何从菜单中的不同功能进行打印,如下图所示,但我无法使用它,使用类功能超出了我的能力水平。

class C:


    def set_gen(self):
        self.birth_rate = input("whats your name")
        menu()

    def display_gen(self):
        print (self.birth_rate)
        menu()


def menu():
        q=input("press a to ask or b to print")
        if q==("a"):
            RUN = C()
            RUN.set_gen()
        elif q==("b"):
            RUN = C()
            RUN.display_gen()
        else:
            menu()
RUN = C()
menu()

2 个答案:

答案 0 :(得分:1)

class C:

    def set_gen(self):
        self.birth_rate = raw_input("whats your name: ")

    def display_gen(self):
        print (self.birth_rate)



def menu():
      RUN = C() #create a C object
      while True:
            q=raw_input("press a to ask or b to print: ")

            if q==("a"):
               RUN.set_gen()
            elif q==("b"):
               RUN.display_gen()





menu() #Call the main function

答案 1 :(得分:0)

我不确定您尝试做什么但是多次创建RUN以便清除此对象中的self.birth_rate - 您只需创建一次。此外,您应该为self.birth_rate设置默认值,因为您可能会在display_gen之前使用set_gen并因为self.birth_rate尚未存在而收到错误。

除了在课堂上你运行menu()再次运行类,它运行menu()。它是递归。更好地使用while True循环。

class C:

    def __init__(self):
        # default value at start
        self.birth_rate = None

    def set_gen(self):
        self.birth_rate = input("whats your name: ")

    def display_gen(self):
        print(self.birth_rate)

# ---------------------------------------------------- 

def menu():

    # create object only once
    run = C()

    # endless loop till you press `q`
    while True:

        q = input("a = ask, p = print, q = quit: ")

        if q == "q":
            break # exit `while` loop
        elif q == "a":
            run.set_gen() # set value in object
        elif q == "p":
            run.display_gen() # print value in object

# ---------------------------------------------------- 

menu()