在Python中引用类

Tom*_*m R 2 python google-app-engine class definition

我有一点麻烦的Python(用于app引擎).我对它很新(更习惯于Java),但我一直很享受....直到现在.

以下不起作用!

class SomeClass(db.Model):
  item = db.ReferenceProperty(AnotherClass)

class AnotherClass(db.Model):
  otherItem = db.ReferenceProperty(SomeClass)
Run Code Online (Sandbox Code Playgroud)

据我所知,似乎没有办法让这个工作.对不起,如果这是一个愚蠢的问题.希望如果是这样的话,我会得到一个快速回答.

提前致谢.

Lar*_*ngs 6

在Python中查看"class"关键字的一种方法是在初始执行脚本期间简单地创建一个新的命名范围.因此,您的代码抛出一个NameError:名称'AnotherClass'未定义异常,因为Python在执行该class AnotherClass(db.Model):行时尚未执行该self.item = db.ReferenceProperty(AnotherClass)行.

解决此问题的最直接方法是:将这些值的初始化移动到类的__init__方法(构造函数的Python名称)中.

class SomeClass(db.Model):
  def __init__(self):
    self.item = db.ReferenceProperty(AnotherClass)

class AnotherClass(db.Model):
  def __init__(self):
    self.otherItem = db.ReferenceProperty(SomeClass)
Run Code Online (Sandbox Code Playgroud)