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

Python实现列表统计量计算类的代码问题求助

修正后的代码及问题说明

完整修正代码

list_1 = [0,1,2,3,4,5,6,7]
class SummaryStats:
    def __init__(self, list_x):
        self.list_x = list_x
        # 提前初始化属性,避免重复计算
        self.size = len(list_x)
        self.mean = sum(list_x) / len(list_x)
        self.min_val = min(list_x)
        self.max_val = max(list_x)

    def sample_size(self):
        """
        返回样本量
        """
        return len(self.list_x)
    
    def sample_mean(self):
        """
        返回算术均值
        """
        return sum(self.list_x) / len(self.list_x)
    
    def minimum(self):
        """
        返回列表最小值
        """    
        return min(self.list_x)
    
    def maximum(self):
        """
        返回列表最大值
        """    
        return max(self.list_x)

# 正确实例化并调用方法
list_1_stats = SummaryStats(list_1)
print(list_1_stats.sample_size(), list_1_stats.sample_mean(), list_1_stats.minimum(), list_1_stats.maximum())

list_2 = [8,9,10,11,12,13,14,15]
list_2_stats = SummaryStats(list_2)
# 直接访问提前初始化的属性
print(list_2_stats.size, list_2_stats.mean, list_2_stats.min_val, list_2_stats.max_val)

原代码问题解析

  • 方法定义错误:所有实例方法未添加self作为第一个参数,导致无法访问实例内部的list_x属性。修正后所有方法以self为首参数,通过self.list_x调用传入的列表。
  • 实例化错误:list_1 = SummaryStats()未传入__init__要求的列表参数,违反类的初始化规则,必须传入目标列表才能完成实例化。
  • 方法调用错误:直接调用sample_size(list_1)属于错误的调用逻辑,类的实例方法必须通过实例对象调用,比如list_1_stats.sample_size()。
  • 属性访问错误:原代码尝试访问list_2.size等未定义的属性,修正时要么在__init__中提前计算并赋值这些属性,要么调用对应的实例方法获取结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:35:27