开始Python -- 抽象化(1)

个人记录:python的自我理解,抽象化python的编程,使得编程问题变得具体化(一) 个人记录:个人学习的记录 文章目录 前言 一、抽象化模型 二、举例 1.很简单的例子:计算任意数字的相加 2.简单的例子:学生管理系统 总结 前言 刚开始写程序算法时,总是忘记要干什么,基本上复现一篇算法都是看着写。要是完全从零开始,要么是背,要么就是不知道怎么写。直到开始写论文时,发现要是把程序算法抽象化的话,会比较有思路。其实归根溯源就是我们正常编写程序的思路,但是我感觉总结一下后,对以后写程序比较有帮助,而且这个不仅仅只是在写程序上有所帮助 一... 阅读详情

1、创建自己的函数

l         Callable()函数:检查是否可以调用

>>> from math import sqrt as x

>>> y = 1

>>> callable(x)

True

>>> callable(y)

False

l         创建函数:用def关键字定义,用return语句返回结果

def fibs(num):

         result = [0, 1]

         for i in range(num-2):

                 result.append(result[-2] + result[-1])

         return result

(1) 函数Doc

l         函数开始处的一个String(称为docstring)

>>> def square(x):

...      'Calculates the square of the number x.'

...      return x*x

l         使用help()函数显示函数Doc

>>> help(square)

Help on function square in module __main__:

 

square(x)

    Calculates the square of the number x.

(2) keyword参数和缺省值

l         函数的参数在调用时是有顺序的,但使用keyword参数不用关心顺序问题:

>>> def hello_1(greeting, name): print '%s, %s!' % (greeting, name)

>>> hello_1(name='world', greeting='Hello')

Hello, world!

l         在创建函数时可以为参数指定缺省值:

def hello_3(greeting='Hello', name='world'): print '%s, %s!' % (greeting, name)

l         下面各种调用的情况:

>>> hello_3()

Hello, world!

>>> hello_3('Greetings')

Greetings, world!

>>> hello_3('Greetings', 'universe')

Greetings, universe!

l         如果只使用greeting的缺省值,可以使用keyword参数:

>>> hello_3(name='Gumby')

Hello, Gumby!

l         可以混合使用必选参数和带缺省值的参数,但前者必须放在最前面:

>>> def hello_4(name, greeting='Hello', punctuation='!'):

...      print '%s, %s%s' % (greeting, name, punctuation)

(3) 集合参数

l         在参数前面加“*”,表示调用时其后的值放到Tuple中

>>> def print_params_2(title, *params):

...      print title,

...      print params

>>> print_params_2('Params:', 1, 2, 3)

Params: (1, 2, 3)

l         Tuple集合参数不能使用keyword参数:

>>> print_params_2('Hmm...', something=42)

Traceback (most recent call last):

  File "<interactive input>", line 1, in ?

TypeError: print_params_2() got an unexpected keyword argument 'something'

l         可以使用Dictionary集合参数(在参数前面加“**”)

>>> def print_params_3(title, **params):

...      print title,

...      print params

>>> print_params_3('Hmm...', something=42)

Hmm... {'something': 42}

l         “*”、“**”的逆向使用:

>>> params = ('Sir Robin', 'Well met')

>>> hello_3(*params)

Sir Robin, Well met!

>>> params = {'name': 'Sir Robin', 'greeting': 'Well met'}

>>> hello_3(**params)

Well met, Sir Robin!

 

2、范围(或者namespace)

l         除了全局范围之外,每个函数的调用都会创建一个范围,vars()函数返回当前范围中所有的变量及其值的Dictionary:

>>> def foo():

...      x = 42

...      print vars()

...     

>>> x = 1

>>> foo()

{'x': 42}

>>> vars()

{'__builtins__': <module '__builtin__' (built-in)>, 'pywin': <module 'pywin' from 'D:/workshop/Python24/Lib/site-packages/pythonwin/pywin/__init__.pyc'>, 'x': 1, '__name__': '__main__', 'foo': <function foo at 0x00FF5BB0>, '__doc__': None}

l         当函数中的变量和全局变量同名时,可以使用globals()函数(返回Dictionary)来访问全局变量:

>>> def combine(parameter):

print parameter + globals()['parameter']

...

>>> parameter = 'berry'

>>> combine('Shrub')

Shrubberry

 

3、有用的函数

(1) map

l         LAMBDA表达式:以关键字lambda开始,后面跟参数,然后是“:”,最后是表达式

lambda x, y, z: x + y + z

l         map():通过指定函数应用到每个元素,将一个Sequence映射成另一个Sequence

>>> numbers = [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]

>>> map(lambda n: 2*n, numbers)

[144, 202, 216, 216, 222, 88, 64, 238, 222, 228, 216, 200, 66]

l         由于String是字符Sequence,可以直接使用,但要注意返回的是List

>>> map(ord, 'Hello, world!')

[72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]

(2) filter

l         filter():通过指定函数应用到每个元素,将一个Sequence符合的元素组成另一个Sequence

>>> numbers = [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]

>>> filter(lambda n: n % 2 == 0, numbers)

[72, 108, 108, 44, 32, 114, 108, 100]

l         使用List包含可以实现map()和flter()的相同功能:

>>> [chr(n) for n in numbers] # characters corresponding to numbers

['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!']

>>> [n for n in numbers if n % 2 == 0] # filters out the odd numbers

[72, 108, 108, 44, 32, 114, 108, 100]

(3) reduce

l         reduce():使用Sequence中开始的两个元素调用指定的函数,然后用结果和第3个元素调用指定的函数,依次类推到最后的元素,最后返回结果值

l         典型的例子是求和:

>>> numbers = [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]

>>> reduce(lambda x, y: x+y, numbers)

1161

 

 
Anthropic零层架构:推理链路去抽象化实践指南 在大模型服务架构演进中,‘推理层抽象’曾是保障稳定性与可观测性的关键中间件,其核心原理是通过协议转换、请求校验和状态管理解耦应用与模型。但随着模型服务SLA提升至99.99%、GPU推理吞吐翻倍,该层的序列化开销、语义失真与扩展锁死等技术代价已远超容错收益,催生‘零层’(Zero Layer)范式——即彻底折叠中间抽象,实现应用直连模型内核。这一转变带来端到端延迟下降、故障点归零与底层指标可观察性增强等显著技术价值,广泛应用于RAG系统、AI Agent编排及私有化部署场景。本文聚焦Anthropic最新落 阅读详情

相关推荐

Anthropic去抽象化:LLM服务栈的层坍缩与工程回归

在大模型服务架构中,‘抽象层’曾是屏蔽模型差异、简化API调用的关键中间件,其原理是通过统一接口封装输入校验、流式处理、错误重试等通用逻辑;但随着服务端能力增强与规模化瓶颈凸显,该层的技术价值正被系统性压缩——Anthropic将token计数、流式粒度、错误分类等能力内卷至服务端,推动客户端向协议终端演进;这一转变显著降低延迟、提升可观测性,却要求开发者直面HTTP/2、SSE解析、原生schema校验等底层细节;适用于AI网关建设、模型路由编排及高实时性对话系统等对性能与控制力有严苛要求的工程场景。

weixin_30813225的博客 318

python 抽象类

抽象类是一个特殊的类,只能被继承,不能实例化,抽象类中可以有抽象方法和普通方法。 注意:子类继承了抽象类父类,子类必须实现父类的抽象方法。 (一)定义抽象类 定义抽象类需要导入 abc模块。from abc import ABCMeta, abstractmethod 或者: (二)定义抽象方法 抽象方法:只定义方法,不具体实现方法体。 在定义抽象方法时需要在前面加入:@ab...

百雨的博客 4733

掌握Python以培养计算思维能力

计算思维是一种解决问题、设计系统和理解人类行为的基本技能,它涉及到问题求解、系统设计以及人类行为理解等方面。在计算思维中,重要的是如何将一个复杂的问题分解成可管理和可解决的小问题,通过逐步求精的方式解决问题。计算思维是一种实用的思维技能,它不仅限于计算机科学家,而是适用于各个领域的人士。通过学习和应用计算思维,我们可以更有效地处理信息,解决问题,并在日常生活中做出明智的决策。计算思维的核心思想包括:分解、模式识别、抽象化和算法设计。

weixin_35732273的博客 810

Python抽象类

抽象类抽象类描述了相关的一组类的通用的特征和行为。在客户的应用程序中,抽象类是不能正常实例化的,它的子类叫做具体类,这表明它们才是真正用来在客户应用程序中创建对象的类。设计一个AbstractBag类前面我们在Python 基于数组、链表实现的包接口中以不同方法实现了包接口。然后又在Python继承中实现了一个继承ArrayBag类的子类ArraySortedBag类。现在我们需要在ArrayBa...

dta0502的博客 9693

Zynq UltraScale+ MPSoC-AMP(linux+裸机)

接着 Zynq UltraScale+ MPSoC-双核裸机AMP继续 平台工具:zcu106,vitis2020.2,petalinux2019.2 文章目录1.cpu1跑裸机2.cpu0跑linux2.1petalinux设置2.2 app3.生成BOOT.bin4.zcu106测试 1.cpu1跑裸机 参照Zynq UltraScale+ MPSoC-双核裸机AMP建立的工程进行修改。BSP中stdin与out修改为uart1,uart1给裸机用,uart0给linux用。 ddr空间裸机与linu

zhuxl24的博客 5195

Lmbench测试集 --- 延迟测试工具lat_mem_rd

lmbench测试集简介 以及 lat_mem_rd延迟测试工具: 如何测试、测试结果、源码分析

MonologueYY的博客 1万+

Python之抽象类、抽象方法

Python之抽象类、抽象方法 抽象类中只能有抽象方法,子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。 Python2 class CopyBase(object): def save(self): raise NotImplementedError class CopyPaper(C...

HarvardFly的博客 683

CATIA CAA开发环境搭建避坑指南:从授权服务到VS配置全流程

本文提供了一份详尽的CATIA CAA开发环境搭建避坑指南,涵盖从授权服务(DSLS)安装、Visual Studio版本匹配与集成配置,到编译调试全流程。重点解析了授权服务无法连接、模块加载失败等典型问题的解决方案,强调版本严格对应与纯英文环境是成功搭建的关键。

redis7keeper的博客 573

python之抽象类

1什么是抽象类 与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 2为什么要有抽象类 如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。 比如我们有香蕉的类,有苹果的类,有桃子的类,从这些类抽取相同的内容就是水果这个抽象的类,你吃...

weixin_30367945的博客 311

【MATLAB例程】基于TDOA定位(两步最小二乘)的三维轨迹定位和UKF滤波,TDOA的锚点可以自适应,附完整代码

该代码实现了一种**融合TDOA(到达时间差)定位与无迹卡尔曼滤波(UKF)**的动态目标轨迹跟踪方案,适用于三维空间中的移动目标定位与滤波。TDOA定位:通过两步加权最小二乘法(TS-WLS)解算目标位置。UKF滤波:对定位结果进行非线性滤波,抑制噪声并提升轨迹平滑性。多维度误差分析:对比滤波前后误差,评估算法性能。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 676

【JTAG】1149.6协议详解

JTAG1149.6协议是1149.1协议中Boundary-Scan结构的扩展,1149.1对交流耦合、差分或两者兼有的情况并没有得到充分的处理。该协议支持新的I/O测试结构。需要时变(AC)信号的高级I/O引脚允许测试它们之间的连接,这包括所有差分信号引脚或单端信号引脚,通过设计支持交流耦合。..................

xuhe0206的博客 4574

开始Python -- 抽象化(2)

4、创建自己的类l         类是一种类型的对象的抽象,而对象是属于类的实例l         使用class关键字创建类:>>> class Person:...      def setName(self, name):...               self.name = name...      def getName(self):       

Dynamic Script Language 1040

matlab 基于离散余弦变换DCT的最小二乘相位解缠

最小范数法是寻求在解包裹相位的局部微分与包裹相位微分相一致的条件下, 逼近于真实相位分布的解包裹相位分布。目标是使解包裹相位与包裹相位曲面的差最小

点云侠的博客 285

python数据结构与算法——ch1导论

翻译用python解决算法问题ch1 1.1 目标 回顾计算机科学、编程以及解决问题的思想; 理解抽象化及其在解决问题中扮演的角色 理解和实现抽象的数据结构 复习python编程语言 1.2 入门 自从第一台计算机诞生以来,人们对编程的思考经历了很大变化,最开始的程序需要通过跳线和交换设备将人类的编程语言转换为机器语言。就像社会生活的许多方面一样,计算技术的发展也为计算科学家提供了越...

hunter_zju的博客 341

一文吃透 Tools for Applying SAP Notes:从 SNOTE、TCI 到 Solution Manager 与 SAP Cloud ALM

本文系统梳理了SAP技术与运维团队应用SAP Notes的高效工具与方法,涵盖On-Premise与云环境。文章首先阐述了精研SAP Notes工具的必要性,指出其是实施错误修复、法务变更和性能改进的关键载体。随后详细介绍了SNOTE、TCI、Solution Manager、Cloud ALM和Maintenance Planner等核心工具的定位与适用场景,并通过采购异常案例展示了标准更正流程。针对复杂修复场景,文章提出了TCI的批量处理方案,并强调将Note实施纳入变更治理流程的重要性。最后总结了三种

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 354

PCL CSF布料模拟算法【2026最新版】

CSF布料模拟地面滤波算法的PCL实现,博客长期更新,本文最近更新时间为:2026年10月26日。

点云侠的博客 3918

如果你是Python初学者,就从这个开始

要理解它,我们需要定义抽象化第一。摘要只显示基本特征,而不显示任何背景细节。当然小编这里也准备一份适合你的学习资料爬虫 ,web开发的学习资料视频教程,文末可以免费获取!这些书籍都是可以私信小编“01”免费领取的!例1:自动取款机不会向你展示它如何从背面带来金钱。那是抽象。只显示对用户至关重要的内容。示例2:当您登录到Twitter或任何其他平台时,它将不会向您详细说明您的用户名和密码是如何进行身份验证的,该算法在内部使用哪些变量从数据库中检查它。那是抽象。只显示对用户至关重要的内容。所以,

qq_46094651的博客 111

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Python程序设计( 六 面向对象)——6.1 认识面向对象

文章目录6.1认识面向对象6.1.1 对象具有属性和方法6.1.2 类是对象的蓝图6.1.3 抽象化概念 6.1认识面向对象 所谓面向对象(Object Oriented),就是将真实世界的事物模块化,主要目的是提供软件的可重用性和可读性。面向对象概念的示意图如图下所示。 6.1.1 对象具有属性和方法 何谓对象?以我们生活的世界来说,人、车子、书本、房屋、电梯、大海和大山等都可视为对象。举例来...

qq_951274168的博客 338

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

精品课 - Python 基础

个人简历王圣元(FRM, CAIA)新加坡某金融咨询公司总监新加坡国立大学金融数学硕士新加坡国立大学量化金融学士《快乐机器学习》的作者《Python - 金工, 机学, 可视化》(已完成...

weixin_38753422的博客 269

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python中杨辉三角的理解(廖雪峰教程例)

在看到廖雪峰教程生成器一节习题杨辉三角时,一开始感觉很苦恼,没有思路,网上的各种解答也只是梳理程序执行过程,而没有抽象化解决问题的思路 注意:看此教程前请先学习生成器的原理,yield返回的用法规律,不然可能会懵逼。 下面我按照自己的理解写下思路: 首先附上我们需要求得的杨辉三角: [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1]...

熊大的博客 3万+

Python时间函数驱动&函数抽象化分离应用"以呈现日历实验为例"

打开优快云看见一个这么可爱的广告,进去看了看 这广告也太可爱= =,激动码字的心情一下子更,激动了哈哈哈哈 里面是怎样的你们自己去看叭,我点开看看,感觉还不够浪漫~ 今天小白自己完成了一项工程,打印一个日历。 老师说的好,很多年轻的程序员不经过计划,直接开始码字。 这次我系统的思考了如何完成这项工程。 分为两步 获得年份月份 打印出日历 是不是看上去很easy呢? 然而并不是,继续分析。 ...

Hollen0318的博客 678

2024年网安最新从零开始学Python:20课-函数使用进阶_从零开始学phyth

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化资料的朋友,可以点击这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2401_84302583的博客 137

python写框架_用 Python 写一个简单的Web框架

一、概述二、从demo_app开始三、WSGI中的application四、区分URL五、重构1、正则匹配URL2、DRY3、抽象出框架六、参考一、概述在Python中,WSGI(Web Server Gateway Interface)定义了Web服务器与Web应用(或Web框架)之间的标准接口。在WSGI的规范下,各种各样的Web服务器和Web框架都可以很好的交互。由于WSGI的存在,用Pyt...

weixin_35971306的博客 213

不一样的 Python 课【王的机器出品】

王的机器要开课了【王的机器】要和新加坡一家在线教育平台 VIPCLASS 一起合作推出 Python 课程,整套内容目录如下图。首先要学好 Python 的基础知识,不要一上来就好高骛...

weixin_38753422的博客 453
上一篇: 开始Python -- 控制语句(2)
下一篇: 开始Python -- 抽象化(2)
ruby_beginner
博客等级 码龄21年 9粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值