【问题标题】:Python keyword pass causing syntax errors, is this a bug in the language?Python 关键字传递导致语法错误,这是语言中的错误吗?
【发布时间】:2022-01-02 13:00:47
【问题描述】:

我正在使用 this KDE widget 并且很难尝试使用 python 访问它,我发现一些 help 我最初试图正确地做它,如果我在小部件中修补下面的 2 个文件将名称从pass 更改为pypass 或只是在新名称下添加此pass 功能的副本我可以使用新名称没问题,这是语法检查中的误报还是只是用法问题?有没有办法解决这个问题?

这些给出了单词pass的语法错误原因

#!/bin/python3
from pydbus import SessionBus
diy=SessionBus().get("org.kde.plasma.doityourselfbar","/id_10")
diy.pass('|A|Label|Tooltip|notify-send hello world|')
#!/bin/python3
from dbus import SessionBus
diy=SessionBus().get_object("org.kde.plasma.doityourselfbar","/id_10")
diy.pass('|A|Label|Tooltip|notify-send hello world|')

我确实尝试过这样设置,但我得到了一个关键错误,因为它的行为就像 JavaScript...

  • diy['pass]('string')

【问题讨论】:

  • 可能是因为pass是python中的保留字:docs.python.org/3/reference/lexical_analysis.html#keywords
  • 这是一个你可以反复应用的终身提示:如果你是编程语言的新手,并且它的行为与你期望的不完全相同:很可能它不是“语言”。
  • 请改用pass_。这是(其他)保留字(如raise)的常见习语。

标签: python dbus


【解决方案1】:

不,这不是“语言中的错误”,您不能这样做,因为pass 是语言关键字。我不知道 pydbus 是否提供了一种通过名称调用方法的好方法,绕过它的代理,但如果没有,你应该可以这样做

getattr(diy, 'pass')('string')

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2011-09-09
    • 2015-12-09
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多