首先:这个问题几乎涵盖了零用例,而且只是关于病态的好奇心。话虽如此:
不久前,我开始怀疑是否可以从Python复制None
对象(或任何其他单例,如True
或{
>>> noneBis == None
True
>>> noneBis is None
False
我之所以认为这是可能的,是因为Python的核心哲学:一切都是一个对象。一个物体可以被复制。在
我试过几种方法(有些比其他方法更复杂),但都做不到:
^{pr2}$对我来说,这似乎是一个相当顽固和疯狂的科学家证据,但我不确定我是否已经尽力了。(我在Python2.7中对此进行了测试,但是由于Python3+被设计成比Python2更简单,所以我猜结果不会更好。)
你真的可以创建一个单独的Python单例副本吗?
如果你能创建一个单例的“复制副本”,它就不再是一个真正的单例了,是吗?在
wrt/builtin singleton(比如
None
)是用C实现的(或任何给定实现的语言),我认为除了fork Python或其他类似的极端方法之外,您永远不会期望“克隆”它们。还要注意,由于Python语言规范明确地保证None
是一个单例的,所以这不再是Python了;)现在,如果您想要的是一个singleton并比较等于
None
,而不是None
,下面是一个可能的(python 2.7.x)实现:告诉我您是否成功地创建了
NotNoneType
BTW;的另一个实例)相关问题 更多 >
编程相关推荐