You need to enable JavaScript to run this app. Python自定义类无法初始化volume属性 分离请求解析功能实现问题
优惠活动
大模型
产品
解决方案
定价
更多

Python自定义类无法初始化volume属性 分离请求解析功能实现问题

修正后的可运行代码
import requests
from bs4 import BeautifulSoup
from pprint import pp
import datetime
import time

class Data:
    def __init__(self):
        # 初始化时volume属性默认设为None,后续请求解析后再赋值
        self.volume = None
    
    def responce(self):
        # 独立的网络请求逻辑
        r = requests.get('https://robinhood.com/stocks/WISH')
        # 独立的页面解析逻辑
        soup = BeautifulSoup(r.content, 'lxml')
        semigoal = [x.text for x in soup.select('span.css-ktio0g')]
        # 简化原有的冗余字符串处理
        volume = semigoal[11][:-1]
        print(volume)
        # 给实例属性volume赋值
        self.volume = volume
    
if __name__ == "__main__":
    d = Data()
    d.responce()
    # 可直接访问实例的volume属性获取解析结果
    print(f"实例volume属性值为:{d.volume}")
核心调整点
  • 优化构造方法:删除了__init__的强制volume入参,初始化时将volume属性设为默认值None,符合「先完成类初始化、后续通过请求给属性赋值」的需求,也解决了原代码d = Data()调用时缺少参数的报错问题
  • 修正属性赋值错误:原代码self.volume(self,volume)误将实例属性当作可调用方法,直接通过self.volume = volume即可完成属性赋值
  • 简化解析逻辑:原代码多次循环拆分、拼接字符串的操作完全可以通过字符串切片semigoal[11][:-1]一步实现,代码更简洁高效
  • 补充入口判断:增加if __name__ == "__main__"的运行入口判断,避免模块被导入时意外执行请求逻辑

内容的提问来源于stack exchange,提问作者fletcher.l.collins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 10:12:02