我想知道在Python中,在类的主体或__init__函数内部初始化对象属性的最佳实践是什么?
即
class A(object):
foo = None
Run Code Online (Sandbox Code Playgroud)
VS
class A(object):
def __init__(self):
self.foo = None
Run Code Online (Sandbox Code Playgroud) 我正在尝试初始化一个包含ChoiceField在django中的表单.我有以下代码:
# in file models.py
class Locality(models.Model):
locality = models.CharField(primary_key=True, unique=True, max_length=36)
def __unicode__(self):
return self.locality
# in file forms.py
class RegisterForm(forms.Form):
def __init__(self, *args, **kwargs):
self.username = forms.CharField(required=True)
self.email = forms.EmailField(required=True)
self.locality = forms.ChoiceField(widget=forms.Select())
self.fields['locality'].choices = [l.locality for l in Locality.objects.all()]
Run Code Online (Sandbox Code Playgroud)
但是,一旦我尝试实例化,我就会在外壳上:
r = RegisterForm(username ="toto",email ="a@b.com")
我收到了'RegisterForm' object has no attribute 'fields' error.这是否因为物体尚未形成而发生?我怎样才能访问ChoiceField?
任何帮助赞赏.