<ol>
<li>我不认为你打算做一个递归函数</li>
<li>我想你的意思是<code>self</code>,你有<code>main_1</code>,因为你不使用参数</li>
<li>循环中需要<code>input()</code>而不是<code>print()</code></li>
<li>您需要在</em>循环中重新分配<code>choice</code><em></li>
</ol>
<p>总的来说,它看起来像:</p>
<pre><code>class Main:
def main_page(self):
print("===== | MAIN MENU |=====")
print("|| ||")
print("========================")
print("1 - STUDENT ")
print("2 - SUBJECT ")
print("3 - QUIT ")
allchoice = ['1', '2', '3']
choice = input(">>>") # clear prompt
while choice not in allchoice:
choice = input("Invalid Please try again\n>>>") # another input with clear prompt
if choice == '1':
print("Hello world")
elif choice == '2':
print("back world")
else:
quit()
mainout = Main()
mainout.main_page()
</code></pre>
<p>样本输出为:</p>
<pre><code>===== | MAIN MENU |=====
|| ||
========================
1 - STUDENT
2 - SUBJECT
3 - QUIT
>>>5
Invalid Please try again
>>>6
Invalid Please try again
>>>1
Hello world
Process finished with exit code 0
</code></pre>