TypeError:object .__ new __(int)不安全,使用int .__ new __()

时间:2012-10-18 10:09:45

标签: python metaclass

在阅读本文时:What is a metaclass in Python?,我正在学习使用__new__使用以下代码段: -

class a(object):
    pass

a.__new__(int,'abcdef',(int,),{})

使用__new__调用a.时可能会出现问题。但是,我得到以下错误,其中的含义我不明白: -

TypeError: object.__new__(int) is not safe, use int.__new__()

如果与__new__的使用有关,我可以通过阅读一些书籍来推荐。但是,有人可以解释为什么会出现这样的信息:

object.__new__(int) is not safe, use int.__new__()

1 个答案:

答案 0 :(得分:2)

简单地说,在2.6之前 - object.__new__ 忽略参数......现在它实际上可以对它们做些什么......所以警告是可能会发生不同的事情。

这篇文章Any ideas about the best work around for __new__ losing its arguments? - 有更详细的解释。

您可能还想查看http://docs.python.org/library/functions.html#type

知道Python中所有 meta 内容的可能性是很好的,但是作为一个警告,我不会太过于担心它 - 因为我看到一些非常“聪明”解决方案,这只是怪物......