【问题标题】:Weird invalid syntax in pythonpython中奇怪的无效语法
【发布时间】:2018-02-15 16:10:16
【问题描述】:

我正在尝试使用python test.py 在 Mac 终端中运行 python 脚本。

问题是我收到了这个错误:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    import agent as a
  File "/home/test/script/agent.py", line 5
    budget: None
          ^
SyntaxError: invalid syntax

为什么budget: None这一行给出了SyntaxError?

原代码:

class Agent:
    budget: None
    budget_left: None
    (....)

当我在 PyCharm 中运行脚本时工作正常。

【问题讨论】:

  • 您是否使用 Python 2 运行它?
  • 应该是budget = None
  • @UnholySheep 是 python 3.5.2
  • 您希望这能做什么?将属性设置为None 或键入注释?
  • @hop 我对 Python 了解不多。我试图模仿某种“变量声明”。

标签: python python-3.x macos terminal


【解决方案1】:

它给出了一个语法错误,因为那是无效的语法。您没有定义这样的属性;你需要使用赋值。

class Agent:
    budget = None
    budget_left = None

但请注意,将这些定义为类属性可能是isn't what you want。

【讨论】:

  • @exsnake BTW 由于变量注释,它在 Py3.6 中“有效”(不会引发错误或执行赋值)
  • 这是 Python 3 中的有效语法。将属性注释为 None 不是很有用,但是嘿……
  • 正在导入使用中。必须是 @Chris_Rands 评论。
【解决方案2】:

只需为变量添加“=”即可。

budget = None

阅读本文以了解有关该主题的更多信息:

https://www.digitalocean.com/community/tutorials/understanding-class-and-instance-variables-in-python-3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-02
    相关资源
    最近更新 更多