def task1(self): self.cursor = self.conn.cursor() # display all account managers under current supervisor self.cursor.execute(''' select p.pid from personnel p where p.supervisor_pid = :supervisor_id and p.pid in ( select pid from account_managers) ''', {"supervisor_id": self.user_id} ) # select one account manager's ID rows = self.cursor.fetchall() available_account_mgr = set() print("Select an account manager listed below: ") for row in rows: print(row[0]) available_account_mgr.add(row[0]) # select an account while True: mgr_id = input("Select an account manager ID: ") if mgr_id in available_account_mgr: break else: print("The account manager is not under current supervisor!") am = AccountManager(mgr_id, self.conn, self.cursor) am.task2()