DevTools был отключен от страницы, электрон

Это подробно описано с достаточным количеством подробностей самим Гвидо в его сообщении в блоге Order Resolution (включая две предыдущие попытки).

В вашем примере Third() вызовет First.__init__. Python ищет каждый атрибут в родителях класса, поскольку они перечислены слева направо. В этом случае мы ищем __init__. Итак, если вы определите

class Third(First, Second):
    ...

, Python начнет с просмотра First, и, если First не имеет атрибута, тогда он будет смотреть на Second.

Эта ситуация становится более сложной, когда наследование начинает пересекать пути (например, если First унаследовано от Second). Прочтите ссылку выше для более подробной информации, но, в двух словах, Python попытается сохранить порядок, в котором каждый класс появится в списке наследования, начиная с самого дочернего класса.

Так, например, если у вас есть:

class First(object):
    def __init__(self):
        print "first"

class Second(First):
    def __init__(self):
        print "second"

class Third(First):
    def __init__(self):
        print "third"

class Fourth(Second, Third):
    def __init__(self):
        super(Fourth, self).__init__()
        print "that's it"

, MRO будет [Fourth, Second, Third, First].

. Кстати: если Python не может найти порядок согласованного метода, он вызовет исключение, вместо этого о возврате к поведению, которое может удивить пользователя.

Отредактировано, чтобы добавить пример двусмысленного MRO:

class First(object):
    def __init__(self):
        print "first"

class Second(First):
    def __init__(self):
        print "second"

class Third(First, Second):
    def __init__(self):
        print "third"

Если MF Third будет [First, Second] или [Second, First]? Нет очевидного ожидания, и Python вызовет ошибку:

TypeError: Error when calling the metaclass bases
    Cannot create a consistent method resolution order (MRO) for bases Second, First

Редактирование: я вижу, что несколько человек утверждают, что в приведенных выше примерах нет вызовов super(), поэтому позвольте мне объяснить: точка примеров чтобы показать, как строится MRO. Они не предназначены для печати «first\nsecond \ third» или что-то еще. Вы можете - и должны, конечно, поиграть с примером, добавить super() звонки, посмотреть, что произойдет, и получить более глубокое понимание модели наследования Python. Но моя цель состоит в том, чтобы держать его простым и показать, как строится MRO. И он построен, как я объяснил:

>>> Fourth.__mro__
(,
 , ,
 ,
 )

0
задан Amir Meimari 5 March 2019 в 13:32
поделиться

1 ответ

openDevTools в основном является функцией webContents (при использовании на BrowserWindow перенаправляется только )

, так что вы можете открыть devtools главного окно с

win.webContents.openDevTools()

И для BrowserView с

view.webContents.openDevTools()

Или просто создайте представление с опцией devTools, чтобы включить его по умолчанию

view = new BrowserView({ webPreferences: { devTools: true } }
0
ответ дан pergy 5 March 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: