在阅读本文时: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__()
答案 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 内容的可能性是很好的,但是作为一个警告,我不会太过于担心它 - 因为我看到一些非常“聪明”解决方案,这只是怪物......