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
已经是实例。
我写了非常简单的代码,但我想知道它是否是解决问题的正确方法:
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
已经是实例。