我有一个案例,我在外部函数中创建一个类,然后返回该类。该类具有指定的父类。我希望父类上的类方法可以访问该类变量,这些方法在类初始化时调用。总之,我需要能够设置一个类变量(非硬编码),以便在初始化其他硬编码类变量之前它可用。
这里有一些示例代码可以更清楚地说明:
class Parent(object):
class_var = None
@classmethod
def get_class_var_times_two(cls):
return cls.class_var * 2
def outer_function(class_var_value):
class Child(Parent):
other_var = Parent.get_class_var_times_two() # <-- at this point, somehow Child's class_var is set to class_var_value
不确定这在python中是否可行。也许 class_var_value 不需要通过外部函数传递。我尝试使用元类并在类属性字典中强制变量通过,但无法弄清楚如何尽早在 Child 上设置 class_var,以便在初始化 other_var 之前设置它。如果这是可能的,那么这一切都会奏效。任何想法表示赞赏!
编辑:还考虑将 other_var 设为惰性属性,但这不是我的用例的选项。