python观察者模式

Dan*_*iel 4 python django

我是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)你甚至不能在方法之外运行代码.(我认为这可能几乎像一个静态构造函数 - 它只会运行一次).

lio*_*ori 5

在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无关.