我是python的新手但是在尝试实现观察者模式的变体时我遇到了麻烦.
class X(models.Model):
a = models.ForeignKey(Voter)
b = models.CharField(max_length=200)
# Register
Y.register(X)
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,因为它说X没有定义.有几件事是可能的:
A)有一种方法可以引用当前类(不是实例,而是类对象).
B)你甚至不能在方法之外运行代码.(我认为这可能几乎像一个静态构造函数 - 它只会运行一次).
在python中,类块中定义的代码被执行,并且只有这样,根据各种事物 - 就像在这个块中定义的那样 - 创建一个类.因此,如果你想将一个类与另一个类联系起来,你会写:
class X(models.Model):
a = models.ForeignKey(Voter)
b = models.CharField(max_length=200)
# Register
Y.register(X)
Run Code Online (Sandbox Code Playgroud)
而这种行为与django无关.