В настоящее время я делаю свой собственный проект с Python, используя класс наследования, если я выбираю меню из класса A, родительский класс, затем перехожу к классу B, дочернему классу, а также если я выбираю меню из класса B, дочернего класса,Я хотел бы перейти в класс А. Как решить эту проблему?
Я пытался создать эти файлы с помощью Python Decorator, но Decorator может использовать один файл.поэтому я попытался использовать наследование Python для свободного перемещения между классом A и классом B, но безрезультатно.
это Main.py
from FirstNews import FirstNews
from Default import Default
import datetime
import random
random.seed(datetime.datetime.now())
class NaverNews:
def __init__(self, news_lists):
self.FirstNewsSite = news_lists
self.Default = news_lists
def __call__(self):
print("Select the News site that you want to read")
menu_input = input("Selection Menu")
menu_list = []
while 1:
if menu_input is 1:
self.FirstNewsSite()
menu_list.append(FirstNews)
else:
self.Default()
menu_list.append(Default)
break
Это FirstNews.py
import sys
from Main import NaverNews
from Default import Default
sys.path.append('/NaverNews/Main/Main')
# noinspection PyCallByClass
class FirstNews(NaverNews):
def __init__(self, my_choice):
NaverNews.__init__(self, my_choice)
self.myFirstChoice = my_choice
self.mySecondChoce = my_choice
self.myBackMenu = my_choice
self.myDefault = my_choice
def __call__(self):
print("Select the News Company that you want to read")
FirstInput = input()
FirstList = []
while 1:
if FirstInput is 1:
self.myFirstChoice()
FirstList.append(NaverNews)
# print("실행")
elif FirstInput is 2:
print("Going Back to Main.py")
self.myBackMenu()
FirstList.append(NaverNews)
else:
self.Default()
FirstList.append(Default)
break
Это Default.py
import sys
from Main import NaverNews
sys.path.append('/NaverNews/Main/Main')
class Default(NaverNews):
def __init__(self, myDefaultMenu):
NaverNews.__init__(self, myDefaultMenu)
self.myDefaultMenu = myDefaultMenu
def __call__(self):
print("You chose the wrong button\n Would you like to choose again? [Y / N]")
DefaultInput = input()
DefaultList = []
if DefaultInput is 'y' or 'Y':
self.myDefaultMenu()
DefaultList.append(NaverNews)
else:
print("Shut down the program")
exit(0)
И произошли ошибки.Трассировка (последний вызов был последним): файл "E: /Python_Class/Web_Crawling_and_ChatBot_1/NaverNews/Main/Main.py", строка 12, из файла FirstNews, импортируйте файл FirstNews "E: \ Python_Class \ Web_Crawling_and_ChatBot_1 \ Main \ News \ News \ News \ News.py ", строка 3, из главного файла импорта NaverNews" E: \ Python_Class \ Web_Crawling_and_ChatBot_1 \ NaverNews \ Main \ Main.py ", строка 12, из импорта FirstNews FirstNews ImportError: невозможно импортировать имя 'FirstNews'