python类没定义成员变量

class a:
    def __init__(self, *args, **kwargs):
        self.tra = 3

class b:
    def __init__(self, *args, **kwargs):
        self.name = 2

request = a()
request.x = b()
print(request.x.name)

在类a里面并没有定义x成员变量,但是使用request.x = b()却可以给他加一
个成员变量,这是我在学django项目时老师是这样做的,但我不知道为什么

实例化后的对象是可以动态添加属性的,只是此对象有这个属性,不是类有这个属性。类也可以在定义之后,动态的向里面添加属性,就是类名.属性名

可以动态添加属性的,但是最好不要这么做,如果项目大的话,这样会很难维护。