我在理解 self
的行为方面遇到了非常基本的问题。
具体来说,我不明白以下两个代码片段为什么都无法正常工作。第一个片段导致解释器抱怨缺少self
作为参数:
self
作为参数缺失
第二个片段则提示:self
不能被引用。
class Model(models.Model)
name = models.CharField(max_length=200)
auto_gen_field = models.CharField(max_length=200, default=gen_field())
def gen_field(self):
return self.name + 'something'
class Model(models.Model)
name = models.CharField(max_length=200)
auto_gen_field = models.CharField(max_length=200, default=gen_field(self))
def gen_field(self):
return self.name + 'something'
以下代码也使用了
self
,并且可以正常工作:class Model(models.Model)
name = models.CHarField(max_length=200)
auto_gen_field = models.CharField(max_length=200, blank=True)
def gen_field(self):
return self.name + 'something'
def save(self):
self.auto_gen_field = self.gen_field()
super(Model, self).save(*args, **kwargs)
为什么self
引用在一个地方存在而在另一个地方不存在?
我该如何修复前两个代码片段?