Python - 继承、超级和初始化对象的正确方式(selenium、phantomjs)

Python - Proper way of inheritance, super and initialize object (selenium, phantomjs)

我写了非常简单的代码,但我想知道它是否是解决问题的正确方法:

from selenium import webdriver


class MyClass(webdriver.PhantomJS):
    def __init__(self, *args, **kwargs):
        phantomjs_path = 'node_modules/.bin/phantomjs'
        self.driver = webdriver.PhantomJS(phantomjs_path)

        super().__init__(phantomjs_path, *args, **kwargs)

我创建了 class,它继承自 selenium.webdriver.PhantomJS - 当然我执行了 super()。另外我创建对象 self.driver.

Can/Should我最后两行合二为一?

您根本不会使用倒数第二行。您正在那里的子类中创建 另一个实例 self.driver 现在基本上与 self 相同,只是没有您的额外方法。

完全省略它:

class MyClass(webdriver.PhantomJS):
    def __init__(self, *args, **kwargs):
        phantomjs_path = 'node_modules/.bin/phantomjs'
        super().__init__(phantomjs_path, *args, **kwargs)

在您的方法中,self 已经是实例。