2014-11-17 3 views

ответ

3

Давайте посмотрим на __init__ из Section:

def __init__(self, parent, depth, main, indict=None, name=None): 

По какой-то причине, автор этого кода решил передать self несколько раз Section «s __init__. Я не смотрел на код подробно, но это обычно означает, что объекты могут быть построены, а в других случаях эти аргументы будут меняться (т. Е. Они не будут self каждый раз).

Таким образом, для этого конкретного вызова объект, представленный self, играет множество ролей, поэтому объект передается несколько раз на родительский класс __init__. Поэтому, чтобы понять, почему self передается несколько раз, вам нужно будет рассмотреть цели аргументов и понять, почему они в этом случае одинаковы. Вполне возможно, что экземпляры будут созданы там, где аргументы будут разными, поскольку эти «роли» обрабатываются разными объектами, а не все одним и тем же объектом.

+0

Для того, что я понял из кода, он должен содержать одну ссылку, родительский раздел, текущий и дочерний, если они есть (контекст - это файлы конфигурации с секцией, очевидно :)). Я не полностью понял это, но я его схватил: так что спасибо. ;) –

Смежные вопросы