Python 在另一个方法中从循环调用变量

Python 在另一个方法中从循环调用变量,python,python-3.x,variables,methods,kivy,Python,Python 3.x,Variables,Methods,Kivy,如何在“删除”选项卡中调用Bookfolders class Main(MDApp): def build(self): return def remove_tab(self, *args): #if len(self.root.ids.tabs.get_tab_list()) >0: self.root.ids.tabs.remove_widget(Tab(title=(Bookfolders)) #get book

如何在“删除”选项卡中调用Bookfolders

class Main(MDApp):


    def build(self):
        return


    def remove_tab(self, *args):
        #if len(self.root.ids.tabs.get_tab_list()) >0:
        self.root.ids.tabs.remove_widget(Tab(title=(Bookfolders)) #get bookfolders
        self.root.ids.tabs.clear_widgets(self.root.ids.tabs.get_tab_list())

        
    def load_songs(self, storageLocation):
        songs = []
        #  dictionary = {}

        if Path('Books').is_dir():
            for filename in storageLocation.glob('**/*.wav'):
                songs.append(filename)
                # Create dictionary for each subfolder(Chapter)
            booksdir = [f for f in storageLocation.iterdir() if f.is_dir()]
            # for value, Bookfolders in enumerate(booksdir):
            for Bookfolders in booksdir:
                # if Bookfolders not in dictionary:
                # dictionary[Bookfolders] = []
                # dictionary[Bookfolders].append('yahoooooo')

只需将
Bookfolders
设置为这样的实例字段即可

class Main(MDApp):
def加载_歌曲(自):
...
self.Bookfolders=。。。

然后你可以用任何方法访问这些数据。

有效,多亏了一家工厂。但是在运行代码
self.root.ids.tabs.clear\u小部件(Tab(title=str(self.Bookfolders))
之后,我得到了一个错误
TypeError:'Tab'对象不可订阅。forloop中也使用了self.Bookfolders。这显然与奇维有关。