我正在学习为在线商店构建产品购物车应用程序。但是当我在阅读别人的应用程序时,我发现了一些我无法理解的东西。
settings.py>
CART_ID = 'cart_in_session'
cart.py>
from decimal import Decimal
from django.conf import settings
from shop.models import Product
from coupon.models import Coupon
class Kart(object):
def __init__(self, request):
self.session = request.session
kart = self.session.get(settings.CART_ID)
if not kart:
kart = self.session[settings.CART_ID] = {}
self.kart = kart
我无法获得这部分代码片段:如果不是卡丁车:kart = self.session[settings.CART_ID] = {}
它有两个“=”符号,我想知道它是否用于赋值,如果它真的是赋值,那么为什么它将 CART_ID 的值(“cart_in_session”为其匹配的键 CART_ID)设置为 {}
该语句既kart
为购物车创建了一个新的会话密钥,又为购物车创建了会话密钥,将两者都设置为一个空的购物车{}
。
您可以通过=
在 python 中链接来将多个变量分配给相同的值。和这三行是一样的:
temp = {}
kart = temp
self.session[settings.CART_ID] = temp
因此将kart
和 session 变量分配给同一个空字典。
CART_ID
是一个奇怪的名字。它基本上是用于在会话中存储卡的密钥。我会命名它CART_KEY
。所有这些代码所做的就是初始化一个空购物车并将其添加到会话中。
注意:有关Python 中链式赋值的更多信息,请参见此处。
注2:由于我们要指定一个字典,都kart
和session[CART_ID]
内存都指向同一个字典。如果您kart
通过添加产品进行更改,它将自动反映在会话中,反之亦然。
注3:@DanielRoseman 的代码使这一点更加清晰。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句