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