Python uuu new uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;s版本的新版本?
在Python中使用Python uuu new uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;s版本的新版本?,python,metaclass,dynamic-class-creation,Python,Metaclass,Dynamic Class Creation,在Python中使用\uuuuuuuuuuuuuuuuuuuuuu的示例是什么,这样在\uuuuuuuuuuuuuuuuuu的主体中,您就不会返回调用其他类(基、元或其他)版本的\uuuuuuuuuuuuuuuuuuuuuuu的结果,但是您是否返回指定类的已分配实例,以便调用\uuuu init\uuuu 我猜这是(而且应该是)非常罕见的,但我很好奇是否有这个用例的例子。我试着搜索tuple的\uuuuuuuuuuuuu新的实现的Python源代码,以及类型的实现,但这似乎不容易在网上快速找到。
\uuuuuuuuuuuuuuuuuuuuuu
的示例是什么,这样在\uuuuuuuuuuuuuuuuuu
的主体中,您就不会返回调用其他类(基、元或其他)版本的\uuuuuuuuuuuuuuuuuuuuuuu
的结果,但是您是否返回指定类的已分配实例,以便调用\uuuu init\uuuu
我猜这是(而且应该是)非常罕见的,但我很好奇是否有这个用例的例子。我试着搜索
tuple
的\uuuuuuuuuuuuu新的实现的Python源代码,以及类型的实现,但这似乎不容易在网上快速找到。你不能,在Python方面你做不到。一个无操作的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
>>> class A:
... def __new__(cls):
... return object.__new__(cls)
...
>>> A()
<__main__.A object at 0x7f9e951577d0>
>>A类:
... 定义新的(cls):
... 返回对象。\uuuu新建\uuuu(cls)
...
>>>()
您所说的“已分配实例”是什么意思?像a这样的东西可以使用\uuuuuuuuuuuuuuu
返回同一类的现有实例,但是\uuuuuuuuuuuuuuuuu
仍然用于构造初始实例,在那里重新调用\uuuuuuuu init\uuuuuuuuu
甚至不可取(尽管在该示例中发生了)。如果不利用内置的对象,就无法创建用户定义类的真正新实例<代码>元组
和类型
都是用C实现的,所以它们实际上不使用与\uuuuuuuuuuuuuuu新的
相同的API。你如何创建新的事物实例而不在其他事物的\uuuuu new\uuuuuu
处触底?或者这是一个误导性的问题?你不能。您必须调用其他类的\uuuuuu new\uuuuu
,或者通过调用其他类/类型创建一个对象,该类/类型在后台也将调用该类的\uuuu new\uuuuuu
。只需确认一下,tuple.\uuuu new\uuuuu
,对象.\uuuuuuuuu new\uuuuu
和类型的实现都在C级别,并为\uuuu new\uuuuuu
定义唯一的行为集(从根本上)。对于类,在链的某个层次上,您依赖于一些内置类型的\uuuuu new\uuuu
(或对象
),对于元类,除了类型
之外,其他都是相同的。在\uuu new\uuuu
中,除了tuple
的序列类型不变性之外,还有什么不变性吗?@EMS:什么是“种类不变性”?子类化tuple
是一种获得一些自定义内容和不变性的方法,而不是其他类属性。使用描述符是使事物只读的一种方法,但不是合法的不变的。我想要这样的东西,object.\uuuuuu setattr\uuuuuu
将无法调整任何属性,但它可能具有任意属性或在\uuuuu new\uuuuuuu
@EMS:AFAIK中定义的东西(如果不从现有的不可变类型派生),那么就不可能在用户定义的类上获得真正的不可变性在Python中不使用C语言。你说的“其他类属性”是什么意思?(请注意,python代码很难找到,我忘了说你可以找到它)