如何解析数据 class 中的重复 class 名称?

How are duplicate class names resolved in data classes?

在处理数据时 classes 我声明了重复数据 class 并意识到在使用它们创建对象时,只要我使用的是上面提到的格式,代码就可以正常工作从底部算起的最近一行。

真的允许重复命名吗?我可以使用重复数据 class 名称进行某种重载吗?从同名数据class继承呢?

就像您可以使用赋值语句将新值重新分配给名称一样

x = 1
x = 2
assert x == 2

您可以使用 class 语句将新的 class 对象分配给名称。

class X:
    pass

old_X = X

class X:
    pass

assert old_X is not X

class 语句本身是一种声明性语法,它完成三件事:

  1. 评估其主体以定义一些名称
  2. 将由名称及其值构造的字典传递给元class以创建新的class
  3. 将调用元class的return值分配给class语句给出的名称。

您只是在观察第 3 步。