修改类方法是应该保存自己还是在调用方法后调用显式?

Sim*_*der 8 python django

假设一个类有一个修改它内部的方法.该方法应该在返回之前调用自身保存还是应该在调用修改方法后将保存留给调用者显式保存?

例:

明确地调用save:

class Bar(models.Model):
    def set_foo(self, foo):
        self.foo = foo

bar = Bar()
bar.set_foo("foobar")
bar.save()
Run Code Online (Sandbox Code Playgroud)

或允许方法调用save:

class Bar(models.Model):
    def set_foo(self, foo):
        self.foo = foo
        self.save()

bar = Bar()
bar.set_foo("foobar")
Run Code Online (Sandbox Code Playgroud)

我正在和django一起工作,但我想知道django或者一般情况下是否有最好的做法.

Ofr*_*viv 2

API 的用户可能会忘记调用 .save() ,然后就完蛋了。所以我觉得还是给他打电话拯救比较好。对于 Daslch 提到的情况,如果有意义的话,您可以定义:

def set_foo(self, foo, skip_save=False):
    self.foo = foo
    if not skip_save:
        self.save()
Run Code Online (Sandbox Code Playgroud)

因此,如果用户愿意(并明确声明),则可以避免保存。