来自《Kivy Blueprints》一书的 Python kivy 代码

标签 python function parameters kivy kivy-language

我正在尝试遵循 Mark Vasilkov 的《Kivy Blueprints》一书。在第 21 页,他介绍了一个更新标签文本的函数。

项目文件夹中有两个文件(参见下面的代码)。在 ClockApp 类内部定义了函数 update_time(self, nap)。我正在使用 Intellij Idea Community 和 python 插件,集成开发环境 (IDE) 告诉我 nap 是一个未使用的参数。如果我删除 nap 作为参数,我会收到错误 update_time() gets 1positional argument but 2 were returned。我怎样才能摆脱这个虚拟参数?

# Source: Chapter 1 of Kivy Blueprints
# File: main.py
from time import strftime

from kivy.app import App
from kivy.clock import Clock
from kivy.core.window import Window
from kivy.utils import get_color_from_hex


Window.clearcolor = get_color_from_hex("#101216")
# from kivy.core.text import LabelBase


class ClockApp(App):

    def update_time(self, nap):

        self.root.ids.time.text = strftime("[b]%H[/b]:%M:%S")

    def on_start(self):
        Clock.schedule_interval(self.update_time, 1)


if __name__ == "__main__":
    ClockApp().run()

还有一个额外的clock.kv文件

# File: clock.kv
BoxLayout:
    orientation: "vertical"
    Label:
        id: time
        text: "[b]00[/b]:00:00"
        font_name: "Roboto"
        font_size: 60
        markup: True

最佳答案

绑定(bind)总是传递附加信息,例如在本例中,它向我们发送调用函数的确切时间段。如果您不想使用它,您可以使用 lambda 方法:

class ClockApp(App):
    def update_time(self):
        self.root.ids.time.text = strftime("[b]%H[/b]:%M:%S")

    def on_start(self):
        Clock.schedule_interval(lambda *args: self.update_time(), 1)

如果您只想消除警告:“未使用的参数”,您可以使用_:

class ClockApp(App):
    def update_time(self, _):
        self.root.ids.time.text = strftime("[b]%H[/b]:%M:%S")

    def on_start(self):
        Clock.schedule_interval(self.update_time, 1)

关于来自《Kivy Blueprints》一书的 Python kivy 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51761130/

相关文章:

c# - 使用字符串类型的参数进行线程化

javascript - 为以后的 Javascript 保存参数

python 问答游戏错误

python - Pandas:如果特定列的总计数仅出现 1 次,则删除 DataFrame 的行

Python Pandas Dataframe 追加行

javascript - 将函数绑定(bind)到javascript中的另一个函数

mysql - SSRS : Parameter not filtering MySQL query

java - 在Java中显式引用方法参数

python - 如何使用 Pandas 从化学式中提取氢的数量(即从 C18H36P1 中提取 36)

python - Django Social Auth 没有重定向到下一个 URL?