首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django/Python中“If not x: do something”的用法

问Django/Python中“If not x: do something”的用法
EN

Stack Overflow用户
提问于 2017-07-12 07:25:40
回答 1查看 530关注 0票数 1

对于下面这个问题,我找到了一个非常有用的答案,但对我来说有点不清楚。Why is "if not someobj:" better than "if someobj == None:" in Python?

根据我对"if not x: do something“工作原理的理解,”if not“只是检查x的值是否为True。如果不是,它会做一些事情。

我正在学习Django,在我试图理解的一个示例中,他们使用“如果不是:”逻辑来设置购物车。

下面是比我聪明得多的人是如何编写代码的:

在settings.py文件中:

代码语言:javascript
复制
CART_SESSION_ID = 'cart'

在cart.py文件中:

代码语言:javascript
复制
from django.conf import settings

class Cart(object):

    def __init__(self, request):
        """
        Initialize the cart.
        """
        self.session = request.session
        cart = self.session.get(settings.CART_SESSION_ID)
        if not cart:
            # save an empty cart in the session
            cart = self.session[settings.CART_SESSION_ID] = {}
        self.cart = cart

所以在我看来CART_SESSION_ID是一个字符串,它的初始值是'cart‘。

变量购物车必须是存储产品ids、价格和数量的字典。

由于"cart“的初始值是一个带有值的字符串,因此"if not cart:”返回"True“是否永远不会执行?

EN

回答 1

Stack Overflow用户

发布于 2017-07-12 07:39:53

是的,它在你的例子中是多余的,因为在django-by-example教程中没有使用实际的会话处理机制。

实际上必须实现的想法是,它将在CART_SEESION_ID为False或None时执行,因此必须创建一辆新车,以便生成默认购物车(空cart )。

所以,是的,你是对的,在你的示例中,if行永远不会执行,但这个示例永远不会在现实世界的应用程序中使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45045984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档