1

可能重复:
python 是否有类似于 __setattr__ 但用于 python 类的方法?

我正在尝试创建自己的表单框架,可以像这样定义表单:

class LoginForm(forms.Form):
    username = forms.Input(type='text',validators=[validators.Required(),validators.len(3,10)])
    pass‹ord = forms.Input(type='password', validators=[validators.Required(),validators.len(min=8)])

这些 Input 实例也有一个 property name,但如果必须将它作为参数传递给构造函数,这看起来很愚蠢,因为您已经用变量名命名了它。于是我在repl中做了一个非常非常简单的测试:

class Base:
    @classmethod
    def __setattr__(cls, key, value):
        cls.__dict__[key] = value
        cls.__dict__[key].name = key

class PropClass:
    pass

class SubClass(Base):
    x = PropClass()

SubClass().x.name

我希望这会返回“x”,但事实并非如此。

现在,我已经在 Form 构造函数中放置了一些代码,它遍历它的dict,检查 Field 实例,并设置它们的名称,这对我来说同样有效,但我仍然很好奇是否可以定义 setter类变量。

4

0 回答 0