You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python类:如何定义仅在__init__中实例化的复杂属性?代码疑问求解

问题解答

一、如何定义仅在__init__中实例化的复杂类属性

不需要在类的顶层提前声明这类属性,直接在__init__方法内通过self.属性名的方式赋值即可。这类属性属于实例属性,每个类的实例都会拥有独立的一份,正好符合“仅在初始化时实例化”的需求。

像你代码里的self.driver、self.session、self.url_pages_blanches都是典型的实例属性,完全不需要在类级别提前定义。

二、补全代码中driver=???的部分

直接删掉这一行即可。

原因是:你要的是每个实例独有的driver(已经在__init__里用self.driver赋值了),而类顶层的driver是类属性,会被所有实例共享,这和你实际需求矛盾。保留这行不仅毫无意义,还可能引发后续代码的混淆(比如误访问类属性而非实例属性)。

修改后的完整代码如下:

class pb:
    # defines driver, session and url
    def __init__(self, testMode):
        options = webdriver.ChromeOptions()
        if testMode:
            # sets the self.driver to headless mode
            options.add_argument('--headless')
            options.add_argument('window-size=1600x1080')
        self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
        self.session = requests.Session()
        self.driver.maximize_window()
        self.url_pages_blanches = 'https://www.pagesjaunes.fr/pagesblanches/recherche?ou='

内容的提问来源于stack exchange,提问作者samuelnihoul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:41:03