[英]Python circular references
試圖在同一個文件中有兩個引用彼此的類。 什么是最好的工作方式:
class Foo(object):
other = Bar
class Bar(object):
other = Foo
if __name__ == '__main__':
print 'all ok'
?
問題似乎是因為屬性在類上,因為它一旦解析了類本身就會嘗試執行。
有辦法解決這個問題嗎?
編輯:
這些鍵用於SQLAlchemy映射,它們實際上是類變量(不是實例)。
這會做你想要的:
class Foo(object):
pass
class Bar(object):
pass
Foo.other = Bar
Bar.other = Foo
不過,我寧願完全避免這種設計。
假設你真的希望Foo.other
和Bar.other
成為類屬性,而不是實例屬性,那么這是有效的(我測試過,只是為了確定):
class Foo(object):
pass
class Bar(object):
pass
Foo.other = Bar
Bar.other = Foo
如果它是你所追求的實例屬性,那么aaronasterling的答案更合適。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.