Python 可以实例化一个变量并同时返回它的值或引用吗?
像这样工作的东西
fruits = list()
fruits.append(apple = Fruit()) # (apple = Fruit()) <= Would return a reference/value
fruits.append(orange = Fruit())
apple.do_something()
fruits[1].do_something()
Run Code Online (Sandbox Code Playgroud)
显然,您可以使用 访问对象fruits[n],但是 Python 可以这样做吗?为什么?
从 3.8 开始,是的,使用“海象运算符”:=(正式称为“赋值表达式”):
fruits = list()
fruits.append(apple := Fruit())
fruits.append(orange := Fruit())
apple.do_something()
fruits[1].do_something()
Run Code Online (Sandbox Code Playgroud)
:= 允许将赋值作为表达式而不是语句,并且表达式的计算结果为所赋值的事物。
在 3.8 之前,这是不可能的;你必须把它分开。对现有代码的最不冗长的修改类似于:
fruits = list()
fruits.append(Fruit())
fruits.append(Fruit())
apple, orange = fruits # Unpacks list to multiple names all at once
Run Code Online (Sandbox Code Playgroud)
或存储到名称并构建列表:
apple = Fruit()
orange = Fruit()
fruits = [apple, orange]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37 次 |
| 最近记录: |