Python:将“from”命名为参数抛出语法错误[重复]

vatpfxk5  于 2023-01-18  发布在  Python
关注(0)|答案(2)|浏览(138)
    • 此问题在此处已有答案**:

How do I use a keyword as a variable name?(3个答案)
Python Named Argument is Keyword?(2个答案)
2天前关闭。
我正在编写API,我真的不能重命名变量名来快速处理事情,但是我不能运行代码(Python 3.11)。
问题是:

def __init__(self, from: str = None)
    self.from = from

当我试图运行这块写得很漂亮的宝石时,我得到了一个错误。

def __init__(self, from: str = None
                   ^^^^
SyntaxError: invalid syntax

即使pylance在语法上也有问题,但我设法在脚本开头用# type: ignore修复了它。
有什么建议吗?
编辑器:VSCode
我试过谷歌,但没有多大帮助。:)

mwg9r5ms

mwg9r5ms1#

错误消息不是很清楚,但是from是一个保留关键字
https://docs.python.org/3/reference/lexical_analysis.html#keywords

...
except Exception as ex:
    raise ValueError("oops") from ex
def my_generator(some_iter):
    ...
    yield from some_iter
from foo import bar

如果必须保留名称(例如,在其他冻结的冻结API前面),可以从**kwargs中提取名称

def __init__(self, *args, **kwargs):
    self._from = kwargs["from"]

创建类的示例时可能也要小心

AwkwardFromArgClass(**{"from": "from value"})
fsi0uk1n

fsi0uk1n2#

不能将from用作参数名称,因为导入from math import sin等模块时使用的默认语法是仅导入sin函数。
尝试使用F2将其重命名为from_

相关问题