我遇到了一个问题,当我开发一个web使用python3 +烧瓶时,当名字没有放入时,我感到困惑,结果是打印为True
name = request.args.get('name')
if name is not None:
print('True')
else:
print('False')
我指的是python文档," A不是B"意味着A和B不是同一个对象。 我做了以下测试:
print(name) #None
print(type(name)) #<class "str">
print(type(None)) #<class "NoneType">
我找到了答案,但是当我使用以下格式时
if name:
print('True')
else:
print('False')
它打印True并打印(名称)我得到无 我必须写如下:
if name != str(None):
print('True')
else:
print('False')
使用它时我觉得有点不舒服,我怎么能以优雅的方式比较它。
答案 0 :(得分:0)
获取字符串&#34;无&#34;作为请求的一部分,当您将None
值作为上一个响应的一部分返回时,通常会发生这种情况。
示例:
# given a variable that is passed to a jinja template as None
# instead of as an empty string
name = None
将导致与&#34;无&#34;的链接作为一个字符串。
<a href="/some/link?name={{ name }}>click here</a>
而不是试图处理字符串&#34;无&#34;在您期望字符串的任何给定请求中,您应该将原始变量输出为空字符串:
name = None
...
# convert Nones to empty strings right before sending to jinja
if not name:
name = ''
答案 1 :(得分:0)
print(True if "None" not in name else False)
我认为在您的案例中打印出更优雅的方式。