如何将Nonetype转换为int或字符串?
我有一个Nonetype
值x
,通常是一个数字,但可能是None
。我想将其除以数字,但是Python提出了:
TypeError: int() argument must be a string or a number, not 'NoneType'
我该如何解决?
-
在其中一项评论中,您说:
我以某种方式得到了一个Nonetype值,它应该是一个int,但是现在它是一个Nonetype对象
如果这是您的代码,请弄清楚
None
当您期望有一个数字时您将如何工作,并阻止 这种 情况的发生。如果是别人的代码,请
None
使用通常的条件代码找出给出的条件,并确定用于该条件的合理值:result = could_return_none(x) if result is None: result = DEFAULT_VALUE
…甚至…
if x == THING_THAT_RESULTS_IN_NONE: result = DEFAULT_VALUE else: result = could_return_none(x) # But it won't return None, because we've restricted the domain.
没有理由在
0
这里自动使用-解决方案取决于None
假设您会想要的“假”性质。的DEFAULT_VALUE
(如果存在的话)完全取决于你的代码的目的。