将 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)
给定父 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)