如何使用f“简化代码;{};python
我想简化我的代码,我是通过f{}实现的。但现在我需要当你们点击这个项目时,切换一个带有特定数字的屏幕。但我不知道怎么做。有什么可能性吗如何使用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_
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:没有名为“”的屏幕。它显示了此错误,您能帮助我吗?