Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用f“简化代码;{};python_Python_Kivy_Kivymd - Fatal编程技术网

如何使用f“简化代码;{};python

如何使用f“简化代码;{};python,python,kivy,kivymd,Python,Kivy,Kivymd,我想简化我的代码,我是通过f{}实现的。但现在我需要当你们点击这个项目时,切换一个带有特定数字的屏幕。但我不知道怎么做。有什么可能性吗 def show_bottom_sheet(self): bs = MDListBottomSheet() bs.add_item("bla bla", lambda x: x,icon='account-group-outline') for y in 1,2,3,4,12,13: bs.add_

我想简化我的代码,我是通过f{}实现的。但现在我需要当你们点击这个项目时,切换一个带有特定数字的屏幕。但我不知道怎么做。有什么可能性吗

def show_bottom_sheet(self):
    bs = MDListBottomSheet()
    bs.add_item("bla bla", lambda x: x,icon='account-group-outline')

    for y in 1,2,3,4,12,13:

        bs.add_item(f"number {y} ", lambda x: self.behavior(), icon='account-group-outline'.format(y))
        bs.open()
而不是

    #bs.add_item("2", lambda x: self.behavior2(), icon='account-group-outline')
    #bs.add_item("3", lambda x: self.behavior3(),icon='account-group-outline' )
    #bs.add_item("4", lambda x: self.behavior4(),icon='account-group-outline' )
    #bs.add_item("12", lambda x: self.behavior12(),icon='account-group-outline' )
    #bs.add_item("13", lambda x: self.behavior13(), icon='account-group-outline')
我试过这样的方法,但没有成功:

def behavior(self):
    for y in 1, 2, 3, 4, 12, 13:
        self.manager.current = f"{y}"
我以前有过这样的经历

def behavior2(self):
    self.manager.current = "2"
def behavior3(self):
    self.manager.current = "3"
def behavior4(self):
    self.manager.current = "4"
def behavior12(self):
    self.manager.current = "12"
def behavior13(self):
    self.manager.current = "13"
def behavior14(self):

我认为您的
behavior()
方法需要获取一个参数:

bs.add_项(f“number{y}”,lambda x:self.behavior(x),icon='account-group-outline'。格式(y))
...
def行为(自我,x):
self.manager.current=f“{x}”

Python字典可能是解决您问题的一个选项,您可以像其他编程语言中的开关语句一样使用它,而不是
f{y}
您可以使用
str(y)
文件“C:\Users\Stanko\PycharmProjects\pythonProject\venv\lib\site packages\kivy\uix\screenmanager.py”,第1064行,在get_screen中引发ScreenManagerException(“没有名为“%s”的屏幕”。“%name”)kivy.uix.screenmanager.ScreenManagerException:没有名为“”的屏幕。它显示了此错误,您能帮助我吗?