什么是;()";python中的语法含义
我正在学习python中的异常处理,遇到了以下代码片段:异常类:什么是;()";python中的语法含义,python,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
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 ())
是否在内指定方法?()
代表什么?来自python shell:
>>> type(())
<type 'tuple'>
type(())
<type 'tuple'>
>>类型(())
所以它是一个。()
代表一个空元组。另一方面,或
在这里的作用类似于self.payload或()
中,如果self.payload
的计算结果为false,则整个表达式返回一个空元组
>>> False or 5
5
>>> [] or (1, 2, 3)
(1, 2, 3)
基本上,正如@turkus所回答的:
从python shell:
>>> type(())
<type 'tuple'>
type(())
<type 'tuple'>
类型(())
所以这是一个元组
它所做的是检查self.payload
是否不是None
。
如果它是None
变量rv
等于一个空dict
如果不是,它等于self.payload,这里的检查是如果它是None,但它归结为同一件事,因为在布尔检查中没有错误