Python类的类级构造函数

Python类的类级构造函数,python,Python,我知道\uuuu init\uuuu()是类实例的构造函数。每当实例化一个类时就会调用它。还有类变量的概念——属于类并由所有实例共享的变量。例如: class A(object): a = 1 b = [] #a and b are shared by all instances of class A 但问题是,有时初始化a和b所需的代码比上面显示的一行要多。因此需要“类级构造函数”。不过,我想知道是否有这样的东西 你可以像这样做 class A(object): #

我知道
\uuuu init\uuuu()
是类实例的构造函数。每当实例化一个类时就会调用它。还有类变量的概念——属于类并由所有实例共享的变量。例如:

class A(object):
    a = 1
    b = [] #a and b are shared by all instances of class A


但问题是,有时初始化
a
b
所需的代码比上面显示的一行要多。因此需要“类级构造函数”。不过,我想知道是否有这样的东西

你可以像这样做

class A(object):
    # .......

var = input()
var += 10
# ecc.

A.b = var

可以使用元类,但这不是必需的。Python类主体可以运行任意语句,也可以使用类方法,如下面的问题:在编写Python的近20年中,我只使用过一次(自定义)元类,并且这样做是为了一些codegen特性,这些特性实际上只是为了帮助我更快地为个人项目编写其余的代码。我非常同意@juanpa.arrivillaga的观点,即您几乎可以肯定应该只分配需要分配的值,而不是为了纯度而试图寻求某种体系结构解决方案。那篇文章中的类方法听起来是个好主意。
\uuu init\uuu()
是一个实例构造函数。每次创建新实例时都会调用它。我想要一个类级构造函数,其中,当类对象本身被创建时,它会被调用一次。我的意思是,你可以从类外部创建一个属性,这样你就可以运行你之前想要的任何东西(就像我上面做的那样)