Python 自动将类中的所有变量转换为";“自我”;变量

Python 自动将类中的所有变量转换为";“自我”;变量,python,class,self,manim,Python,Class,Self,Manim,我的代码(最简单的示例)如下所示: class你好: a=1 b=2 c=3 定义初始化(自): self.d=4 我正在搜索一个函数,比如set\u all\u vars\u to\u self\u vars(),我可以在类Hello中调用它,这样Hello类就等于: class你好: 定义初始化(自): self.d=4 self.a=1 self.b=2 self.c=3 有一些功能可以做到这一点吗 rich示例如下所示: 从manim导入* 班级场景1(场景): def构造(自):

我的代码(最简单的示例)如下所示:

class你好:
a=1
b=2
c=3
定义初始化(自):
self.d=4
我正在搜索一个函数,比如
set\u all\u vars\u to\u self\u vars()
,我可以在类
Hello
中调用它,这样
Hello
类就等于:

class你好:
定义初始化(自):
self.d=4
self.a=1
self.b=2
self.c=3
有一些功能可以做到这一点吗

rich示例如下所示:

从manim导入*
班级场景1(场景):
def构造(自):
点=点()
circ=圆()
自我添加(点、圈)
self.set_variables_as_attrs(dot)#目前,必须手动添加变量
回归自我
课堂场景2(场景):
def构造(自):
sc1=Scene1.construct(自)
dot2=Dot()。紧挨着(sc1.Dot)
self.play(ShowCreation(dot2))

\uuuuu init\uuuu
外部定义的变量与在
\uuuuu init\uuuuu
内部声明的变量完全不可比。第一个属于
,第二个属于
对象

因此,如果希望
a
b
c
d
Hello()
的每个实例而更改,则不应将它们声明在
\uuu init\uuuuuuu()的范围之外。它们根本没有相同的含义

但是,如果这是您想要做的,以下是如何做到这一点:

class Hello:
    a = 4
    b = 4
    c = 4

    def __init__(self):
        d = 4
        for attr in dir(self):
            if not callable(attr) and not attr.startwith('__'):
                self.__dict__.setdefault(attr, Hello.__dict__.get(attr))
然后,使用
H=Hello()
您将拥有,例如,
H.a=Hello.a
。 一般来说,对于
的每个
实例
,您将拥有
的每个变量的副本


这是您想要的吗?

使用IDE。Pycharm应该能够做到这一点。当你只有像1,2,3,4这样的数字时,你不需要任何与第一个代码片段不同的东西。我的示例是一个更复杂情况的最小示例。我不希望我的代码看起来像示例2,但只希望其行为像示例2。原因:大约有300行我使用a、b、c,我不想每次都使用
self出于可读性的原因,您可以更改最小示例以包含更实际的变量类型。目前,您不需要第二个代码段这样的代码,我不明白您的“富示例”中的代码与您的问题有何关联。您想在代码中更改什么?