Considerar:
course_db = Course(title='Databases') course_db.save()
Viniendo de un entorno de C++, esperaría que (course_db = Course(title='Databases'))
se comporte como lo haría en C++, es decir, asigne Course(title='Databases')
a course_db
y devuelva el objeto asignado para que Puedo usarlo como parte de una expresión más grande . Por ejemplo, esperaría que el siguiente código hiciera lo mismo que el código anterior:
(course_db = Course(title='Databases')).save()
Esta suposición obtuvo el apoyo de algunas búsquedas rápidas en Google utilizando términos como "operador de asignación en Python", por ejemplo, este artículo . Pero cuando probé esto, recibí un error de sintaxis.
¿Por qué no puedo hacer esto en Python y qué puedo hacer en su lugar?
Debería investigar un poco más sobre las diferencias entre declaraciones y expresiones en Python.
Si está usando Python 3.8+ , puede usar el operador : :=
:
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>