即使有对象,Python .get()也不会计算为True?

dat*_*arl 4 python pylons

我正在经营一个Pylons项目并遇到了这个奇怪的问题.提交表单时,我可以选择添加徽标(简单.png).徽标在FieldStorage实例中传递.我尝试评估徽标是否与此一起发送:

if request.params.get('logo'):
    do x
Run Code Online (Sandbox Code Playgroud)

但是,即使有徽标,也始终评估为False.如果我打印request.params我得到UnicodeMultiDict([('logo', FieldStorage('logo', u'tux.png'))]).

我解决了它:

if not request.params.get('logo') == None:
    do x
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这样有效,第一个例子没有.

Con*_*ius 5

这很有趣,不知何故该FieldStorage对象解析为false.

编写以下内容(更简单一点)是完全合法的:

if request.params.get('logo') is not None:
    # do x
Run Code Online (Sandbox Code Playgroud)