1

我有错误

AttributeError: 'NoneType' object has no attribute

所以我添加了一个 if 以防止执行以下行:

if library.info != NoneType:
    library.info.update(info)

但这确实有效,我得到了NoneType某种无效的错误

我怎么写这样的如果?

4

4 回答 4

2

直接比较它的值:

if library.info is not None:
    library.info.update(info)
于 2013-11-12T16:46:54.750 回答
1

根据您期望library.info的频率None,您可能更喜欢例外:

try:
    library.info.update(info)
except AttributeError:
    library.initialize_the_info_hoozit()
    library.info.update(info)
于 2013-11-12T16:53:46.720 回答
1

Python 没有任何名为 的内置插件NoneType(但是,Python 2.x确实types.NoneType)。

相反,PythonNone用来表示非类型。所以,你的代码应该是这样的。

# You should always use `is` and `is not` to test for `None`.
if library.info is not None:
    library.info.update(info)
于 2013-11-12T16:46:48.033 回答
1

你可以说:

if library.info:
    library.info.update(info)

看起来很干净

于 2013-11-12T16:47:40.650 回答