Python检查下面的所有值都不是None

MrK*_*tts 2 python python-3.x

检查以下所有值的最佳方法是不是None.这是我尝试过的:

    user = url_string.get('user', None)
    subject = url_string.get('subject', None)
    email = url_string.get('email', None)
    from_address = url_string.get('from_address', None)

    if not any(user, subject, email,from_address):
        raise Exception('missing data')
Run Code Online (Sandbox Code Playgroud)

e4c*_*4c5 5

由于您希望定义所有这些代码,因此以下代码将非常pythonic.以来

比许可更容易请求宽恕.这种常见的Python编码风格假设存在有效的键或属性,并且如果假设被证明是错误则捕获异常.这种干净和快速的风格的特点是存在许多try和except语句.该技术与许多其他语言(如C)共有的LBYL风格形成对比.

https://docs.python.org/2/glossary.html

try:
    user = url_string['user']
    subject = url_string['subject']
    email = url_string.get['email']
    from_address = url_string['from_address']
except KeyError:
        raise Exception('missing data')
Run Code Online (Sandbox Code Playgroud)

正如评论中所提到的,这确实留下了字典中的一个值为None并且可以通过测试的可能性.但是,我假设您使用get('...',None)的假设是字典不包含空值.如果确实包含空值,请考虑Moses Koledoye的解决方案.