考虑:
course_db = Course(title='Databases')
course_db.save()
Run Code Online (Sandbox Code Playgroud)
来自 C++ 背景,我希望(course_db = Course(title='Databases'))表现得像 C++ 中的那样,即分配Course(title='Databases')并course_db 返回分配的对象,以便我可以将其用作更大表达式的一部分。例如,我希望以下代码与上面的代码执行相同的操作:
(course_db = Course(title='Databases')).save()
Run Code Online (Sandbox Code Playgroud)
这一假设得到了一些使用“Python 中的赋值运算符”等术语的快速 Google 搜索的支持,例如这篇文章。但是当我尝试这个时,我遇到了语法错误。
为什么我不能在 Python 中执行此操作,我可以做什么?
您应该对 Python 中的语句和表达式之间的差异进行更多研究。
如果您使用的是Python 3.8+,则可以使用:=运算符:
In [1]: class A:
...: def save(self):
...: return 1
...:
In [2]: (a := A()).save()
Out[2]: 1
In [3]: a
Out[3]: <__main__.A at 0x7f074e2ddaf0>
Run Code Online (Sandbox Code Playgroud)