首页 > 编程语言 >累计行为 | Python

累计行为 | Python

时间:2024-10-26 23:31:54浏览次数:1  
标签:__ Python series self value 累计 行为

累计,就是不断计算增加的数据。累计行为如此普遍以至于在编程过程中往往我们使用到了而不自知。当循环体出现在程序中往往累计行为就开始了。最近我经常需要把 Python 作为一个计算器来验算一些数学题,由此总结了些 Python 中累计行为的实现方法

1. reduce

这是 functools 标准库里的函数,作用不言而喻——累计运算一组数据。虽然编程出场率可能不如 map 但是需要它的时候是真耐用,完全是官方给的挂。

评分: ⭐⭐⭐

2. 类属性

类可以很方便封装一些变量防止名称空间被污染,不过对于类来说只是做这种简单的事有点大财小用了。下面是一个不断计算新平均值的一段代码:

class Averager:
    def __init__(self):
        self.series = []

    def __call__(self, new_value: int|float = None):
        if new_value is not None:
            self.series.append(new_value)
        else:
            pass
        total = sum(self.series)
        return total/len(self.series)

avg = Averager()
for i in range(11):
    avg(i)
print(avg())

这个例子来自 Fluent Python 。其中用到了特殊方法 __call__,这个方法在函数调用的时候生效,这根本就是把类当函数用了啊(#`O′),实用性感觉可以忽略不记。

评分: ⭐⭐

3. 上面例子的函数版本

上面的例子完全可以用函数改造。

def get_averager():
    series = []

    def averager(value: int|float = None):
        if value is not None:
            series.append(value)
        else:
            pass
        total = sum(series)
        return total / len(series)

    return averager

评分: ⭐⭐⭐


TIPs:闭包也能用来实现累计行为

标签:__,Python,series,self,value,累计,行为
From: https://www.cnblogs.com/clo-cry/p/18505348

相关文章

  • 熵权法确定指标的权重——Python代码
            熵权法是目前最常用的确定评价指标权重的方法之一。熵是热力学的物理概念,是衡量一个体系混乱或无序度的度量,熵越大表示系统越混乱,所反映的信息越少,反之反映的信息越多。熵权法计算权重可以分为以下几步:第一步:计算第 j 项指标在第 i 个样本占该指标的比重......
  • 大数据毕业设计:基于python招聘数据分析可视化系统 爬虫 可视化大屏 Django框架 (源码)✅
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌1、毕业设计:2025年计算机专业毕业设计选题汇总(建议收藏)✅......
  • Python 潮流周刊#74:创下吉尼斯世界记录的 Python 编程课(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期分享了12篇文章,12个开源项目,2则音视频,全文2300字。好消息:即日起至......
  • Jetson_MPU6050_DMP_Python读取
    编译动态链接库I2CDevLib仓库选用Linux上驱动I2C和MPU6050的代码,克隆LinuxI2CDev文件夹到本地,然后进入到文件夹中,创建一个main.cpp用来创建与Python的函数接口,可以自定义。这里的代码没有考虑零偏,只是从DMP取出四元数换算得到结果的,实际用的时候有不小的零偏,可以添加上初始化时......
  • 小北在GitHub上克隆项目(超详细的图文并解)之用 Python 对图片和视频进行高清修复
    前言    估计友友们应该在网上看过很多用AI修复的高清视频,最近我也有相关需求,需要修复几张图片。于是便去GitHub上寻找相关开源项目,结果还真找到一个,效果还很不错,小北这里特意分享出来给友友们~Real-ESRGAN对于算法小白的上手还是比较容易的,即便不懂算法知识,也......
  • 基于Python+Vue开发的母婴商城管理系统
    项目简介该项目是基于Python+Vue开发的母婴商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上母婴商城管理系统项目,大学生可以在实践中学习和......
  • 基于Python+Vue开发的婚恋交友管理系统
    项目简介该项目是基于Python+Vue开发的婚恋交友管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的婚恋相亲交友系统项目,大学生可以在实践中学习和提升......
  • 最新毕设-SpringBoot-健康体检系统-12791(免费领项目)可做计算机毕业设计JAVA、PHP、爬
    springboot健康体检系统摘要在如今IT技术快速发展和Internet广泛应用的时代,电子和网络技术给人们生活带来了便利,同时也会直接或间接损害人们的健康。所以,本次的毕业设计创作的意义就是通过信息化的统一管理,给用户尽心健康体检预约提供了方便。本设计主要实现集人性化、高效......
  • (2024最新毕设合集)基于Django的房价分析平台-65434|可做计算机毕业设计JAVA、PHP、爬虫
    摘要本论文主要论述了如何基于Django框架开发一个房价分析平台,本系统将严格按照软件开发流程进行各个阶段的工作,通过爬虫技术对贵州省的房价数据进行爬取,面向对象编程思想进行项目开发。在引言中,作者将论述房价分析平台的当前背景以及系统开发的目的,后续章节将严格按照软件......
  • 深度学习Python停车场智能车牌识别系统opencv流量费用时间AI源码
    随着智能交通技术的发展,停车场智能车牌识别系统逐渐成为现代停车管理的重要工具。该系统利用深度学习和计算机视觉技术,实现对车辆车牌的自动检测与识别,从而提高停车场的管理效率和用户体验。系统架构与功能模块车牌检测:系统首先利用目标检测算法(如YOLO或FasterR-CNN)对停车......