Есть ли способ получить доступ к внешнему классу во вложенном классе в Python? - PullRequest
0 голосов
/ 28 июля 2011

просто очень простая вещь, есть ли способ получить доступ к внешнему классу из определения внутреннего класса, например:

class Model:
  class Options:
    model = Model   <-- error!

Я вкладываю параметры в модель, поскольку семантически эти параметры существуют только в областимодель, так что кажется подходящим.

Спасибо, Алекс

Ответы [ 4 ]

2 голосов
/ 28 июля 2011

Я не уверен, что это именно то, что вы хотели, но попробуйте:

class Model:
    class Option:
        @property
        def model(self): return Model
1 голос
/ 28 июля 2011

Попробуйте:

class Model:
    pass

class Options:
    model = Model
1 голос
/ 28 июля 2011

Ну, вы можете по крайней мере создать экземпляр внешнего класса в методе внутреннего класса:

class Model:
    class Options:
        def __init__(self):
            model = Model()
0 голосов
/ 28 июля 2011

Другое решение - выполнить присвоение после определения класса.

class Model:
  class Options:
    pass

Model.Options.model = Model
...