首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python观察者模式

python观察者模式
EN

Stack Overflow用户
提问于 2009-06-25 20:48:48
回答 2查看 949关注 0票数 4

我是python的新手,但在尝试实现观察者模式的变体时,我遇到了一个问题。

代码语言:javascript
复制
class X(models.Model):
    a = models.ForeignKey(Voter)
    b = models.CharField(max_length=200)

    # Register 
    Y.register(X)

这似乎不起作用,因为它说X没有定义。有几种情况是可能的:

A)有一种方法可以引用当前类(不是实例,而是类对象)。

B)你甚至不能在一个方法之外运行代码。(我认为这可能会像静态构造函数一样工作--它只会运行一次)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-25 20:56:36

在类定义中运行(受限制的)代码没有任何错误:

代码语言:javascript
复制
class X(object):
  print("Loading X")

但是,您不能引用X,因为它还没有完全定义。

票数 4
EN

Stack Overflow用户

发布于 2009-06-25 20:57:25

在python中,定义在类块中的代码会被执行,然后根据不同的东西-就像在这个块中定义的东西-创建一个类,然后是,然后是。因此,如果你想把一个类和另一个类联系起来,你可以这样写:

代码语言:javascript
复制
class X(models.Model):
    a = models.ForeignKey(Voter)
    b = models.CharField(max_length=200)

# Register 
Y.register(X)

而且这种行为与django无关。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1046190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档