小编Lar*_*ngs的帖子

内部类:如何在构造时获取外部类对象?

考虑以下Python(在2.x或3.x中运行):

class Outer(object):
  pass

  class Inner(object):
    def __init__(self):
      print("Inner.self", self)

o = Outer()
i = o.Inner()
Run Code Online (Sandbox Code Playgroud)

我想o在里面亲自动手Inner.__init__().但:

  • 我不想o成为一个明确的参数Inner.
  • 我想O.Innero.Inner成为一个类的对象,不是很奇怪像关闭.

你能建议我怎么做到这一点吗?

现在我最好的想法是使用线程本地存储.在我的用例中,每当我构造一个时o.Inner(),我已经在o某个地方的某个方法中,并且添加它不是什么大问题

threading.local()["my o object"] = o
Run Code Online (Sandbox Code Playgroud)

到我的代码.

这让您了解我愿意考虑的堕落程度.

python

10
推荐指数
2
解决办法
6441
查看次数

标签 统计

python ×1