将 class 方法用于可能不会被实例化的 subclass 方法的正确方法是什么?

Which is the correct way of using a class method into its subclass that maybe won't be instantiated?

给定父 class:

class Parent():
   _private_attr: Int = None

   @classmethod
   def set_private_attr(cls, value):
      if not type(value) is int:
         raise ValueError()
      cls._private_attr = value

如何将 set_private_attr 用于子 class,因为它可能不会被实例化,因此我不能在 __init__ 中使用 super()

例如:

def SubClass(Parent):
   Parent.set_private_attr(a_value)

是吗?有更好的方法吗?

需要继承Parent,那么派生出来的class可以使用set_private_attr()class方法

举个例子。

class Parent():
   _private_attr = None

   @classmethod
   def set_private_attr(cls, value):
      cls._private_attr = value

class Foo(Parent):
    pass

foo = Foo()
foo.set_private_attr("bar")

如果你想在构造派生之前设置这个class:

Foo.set_private_attr("bar")
foo = Foo()
print(foo._private_attr)