Может кто-то пожалуйста, объясните мне эту странную линию в configobj.py, линия 1190:питон странно супер заявление: несколько самостоятельно
Section.__init__(self, self, 0, self)
Я не понимаю смысл этого multidecaration себя.
Спасибо
Может кто-то пожалуйста, объясните мне эту странную линию в configobj.py, линия 1190:питон странно супер заявление: несколько самостоятельно
Section.__init__(self, self, 0, self)
Я не понимаю смысл этого multidecaration себя.
Спасибо
Давайте посмотрим на __init__
из Section
:
def __init__(self, parent, depth, main, indict=None, name=None):
По какой-то причине, автор этого кода решил передать self
несколько раз Section
«s __init__
. Я не смотрел на код подробно, но это обычно означает, что объекты могут быть построены, а в других случаях эти аргументы будут меняться (т. Е. Они не будут self
каждый раз).
Таким образом, для этого конкретного вызова объект, представленный self
, играет множество ролей, поэтому объект передается несколько раз на родительский класс __init__
. Поэтому, чтобы понять, почему self
передается несколько раз, вам нужно будет рассмотреть цели аргументов и понять, почему они в этом случае одинаковы. Вполне возможно, что экземпляры будут созданы там, где аргументы будут разными, поскольку эти «роли» обрабатываются разными объектами, а не все одним и тем же объектом.
Для того, что я понял из кода, он должен содержать одну ссылку, родительский раздел, текущий и дочерний, если они есть (контекст - это файлы конфигурации с секцией, очевидно :)). Я не полностью понял это, но я его схватил: так что спасибо. ;) –