如何使用 f"" Python 简化代码

Posted

技术标签:

【中文标题】如何使用 f"" Python 简化代码【英文标题】:How can I simplify code with f"" Python如何使用 f"" Python 简化代码 【发布时间】:2021-05-07 15:50:18 【问题描述】:

我想简化我的代码,我通过 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):

【问题讨论】:

Python 字典可能是解决您问题的一个选项,您可以像使用其他编程语言中的 switch 语句一样使用它 你可以使用str(y)代替f"y" 【参考方案1】:

我认为你的behavior()方法需要带一个参数:

bs.add_item(f"number y ", lambda x: self.behavior(x), icon='account-group-outline'.format(y))

...

def behavior(self, x):
    self.manager.current = f"x"

【讨论】:

文件 "C:\Users\Stanko\PycharmProjects\pythonProject\venv\lib\site-packages\kivy\uix\screenmanager.py",第 1064 行,在 get_screen raise ScreenManagerException('No Screen with name "%s".' % name) kivy.uix.screenmanager.ScreenManagerException: No Screen with name "". 它显示了这个错误,你能帮帮我吗?

以上是关于如何使用 f"" Python 简化代码的主要内容,如果未能解决你的问题,请参考以下文章

python怎么将0写入文件?

python打印的时候print(f"*******") 的括号里的 f作用是什么 ?

[Python] Template literals f""

[Python] Template literals f""

如何使用perl遍历一个目录下的所有文件

python如何把txt中的数字提取出来放到list中,要求格式是int,而不是原始的str?