سلام من یه برنامه گرافیکی نوشتم که در اون یک فانکشن تعریف کردم که اگه تا به حال از کاربر نام شهرش رو نگرفتی یعنی فایل shahr.txt خالی بود برو به فانکشن show_new_window_for_ab_o_hava()که کار اون اجرا کردن فایل shahr.py هست حالا مشکل من جایی هست که می گم هر وقت شهر رو گرفتی بیا دوباره فانکشن ab_o_hava رو اجرا کن اما نمی دونم کجا باید این فانکشن رو صدا کنم تو فایل shahr.py یا خود فانکشن وقتی تو خود فانکشن صدا می کنم یه لوپ درست می شه و برنامه کرش می کنه براتون فانکشن ها رو گذاشتم from .shahr import Ui_SubWindow class Ui_MainWindow(object): def show_new_window_for_ab_o_hava(self): self.w = QtWidgets.QMainWindow() self.ui = Ui_SubWindow() self.ui.setupUi(self.w) self.w.show() ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــــــــ def ab_o_hava(self): f = open('shahr.txt','r' , encoding="utf8") shahr = f.readline() if not shahr == '': headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} shahr = shahr+" weather" shahr = shahr.replace(" ", "+") res = requests.get(f'Google{shahr}&hl=fa&oq={shahr}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&source id=chrome&ie=UTF-8') soup = BeautifulSoup(res.text, 'html.parser') location = soup.select('#wob_loc')[0].getText().strip() time = soup.select('#wob_dts')[0].getText().strip() info = soup.select('#wob_dc')[0].getText().strip() weather = soup.select('#wob_tm')[0].getText().strip() self.textBrowser.append(f'الان هوا تو {location}، {time}، {info} هست و دما °C{weather} هست') else: self.show_new_window_for_ab_o_hava()