是什么"()" python中的语法含义

时间:2016-09-07 06:29:59

标签: python

我正在学习python中的异常处理,并遇到以下代码片段:异常类:

from flask import jsonify

class InvalidUsage(Exception):
    status_code = 400

    def __init__(self, message, status_code=None, payload=None):
        Exception.__init__(self)
        self.message = message
        if status_code is not None:
            self.status_code = status_code
        self.payload = payload

    def to_dict(self):
        rv = dict(self.payload or ())
        rv['message'] = self.message
        return rv

在此代码中,此行实际意味着什么

rv = dict(self.payload or ())

to_dict方法内? ()代表什么?

3 个答案:

答案 0 :(得分:5)

()代表空元组。另一方面,orself.payload or ()中的行为类似null coalescing operator,如果self.payload的计算结果为false,则整个表达式返回空元组。

>>> False or 5
5
>>> [] or (1, 2, 3)
(1, 2, 3)

答案 1 :(得分:3)

来自python shell:

>>> type(())
<type 'tuple'>

所以它是tuple

答案 2 :(得分:1)

基本上发生的事情就是@turkus回答:

  

来自python shell:

type(())
<type 'tuple'>
     

所以它是一个元组。

它正在做的是检查self.payload是否不是None。 如果是None,则变量rv等于空dict,如果不等于self.payload