Python Schrödinger的Int/Non

2024-03-29 05:08:45 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个非常奇怪的问题。你知道吗

我有一些django管理代码,持续时间以秒为单位,四舍五入到下一分钟,再乘以10。(原因与此无关)。你知道吗

下面的代码给出了以下错误:

不支持+:“NoneType”和“int”的操作数类型

def charge(self, obj):
    return int((obj.duration + 59) / 60) * 10

如果我测试None ness,然后进行计算,代码就会工作:

def charge(self, obj):
    dur = obj.duration
    if dur is None:
        return dur
    else:
        return int((dur + 59) / 60) * 10

结果目标持续时间两种情况都是一样的。你知道吗

这是怎么回事?你知道吗

更新——问题理解:虽然我用if“解决”了这个问题。。。否则。。。事实上,真正的问题是我不明白obj发生了什么。以下是Django文档中的相关页面:

https://docs.djangoproject.com/es/1.9/ref/models/querysets/#when-querysets-are-evaluated


Tags: django代码selfnoneobjreturnifdef