任何人都可以解释这种行为吗?Numpy.array(None)返回None但不是None
print np.array(None)
> None
print np.array(None) is None
> False
任何人都可以解释这种行为吗?Numpy.array(None)返回None但不是None
print np.array(None)
> None
print np.array(None) is None
> False
你确实有其字符串表示是没有一个数组对象,而不是你想的None
对象:
>>> np.array(None)
array(None, dtype=object)
>>> str(_)
'None'
也正因为此,打印报表显示None
。
但是,你实际上做的是:
np.array(None) is None # False
np.array(None)
不None
。 print
只是将其打印为None
。
In [1]: a = np.array(None)
In [2]: a
Out[2]: array(None, dtype=object)
您必须具有None
为str()
值的对象,所以这是打印的内容:
>>> import numpy as np
>>> np.array(None)
array(None, dtype=object)
>>> str(np.array(None))
'None'
这是用字母N
,o
,n
和e
一个字符串值。这与None
单身物件不同,它只是看起来与打印时相同。
请解释你想要做什么。你所做的是询问np.array(None)是否为None类型,它不是,因此返回False。
'print'输出不明确。事实上,两件事情打印相同并不意味着它们是相同的对象,或者甚至它们是平等的或者它们具有相同的类型。毕竟,'打印'无'和'打印无'打印同样的东西,但希望你不会感到惊讶的是,'无'!=无'。 – user2357112
除了所有其他的答案,值得注意的是'np.array(1)'和'np.array(2)'具有相同的行为 – Wondercricket