PythonStudy——函数对象的案例
# part1
# 加法运算
def add(n1, n2):
return n1 + n2 def low(n1, n2):
return n1 - n2
# 四则运算
def computed(n1, n2, func):
# if cmd == 'add':
# return add(n1, n2)
# elif cmd == 'low':
# return n1 - n2
return func(n1, n2) r1 = computed(10, 20, add)
print(r1)
r2 = computed(10, 20, low)
print(r2)
# part2
def add(n1, n2):
return n1 + n2 def low(n1, n2):
return n1 - n2 def computed(n1, n2, func):
return func(n1, n2)
# 测试
cmd = input('cmd: ') # 只能等于字符串add、low => 什么方式可以将字符串add、low对应上函数
fn = None
if cmd == 'add':
fn = add
elif cmd == 'low':
fn = low
computed(10, 20, fn)
# 直接输入cmd 也及时传入了一个函数对象
# 测试
fn_map = {
'add': add,
'low': low
} if cmd in fn_map: # 作为容器的成员可以简化判断逻辑
fn = fn_map[cmd]
res = computed(10, 20, fn)
print(res)
else:
print('该运算暂不支持')
# part 3
def add(n1, n2):
return n1 + n2 def low(n1, n2):
return n1 - n2 def jump(n1, n2):
return n1 * n2 def computed(n1, n2, func):
return func(n1, n2)
fn_map = {
'add': add,
'low': low,
'jump': jump
} def get_fn(cmd):
f = add # 默认为add函数
if cmd in fn_map:
f = fn_map[cmd] # 如果指令正确就返回对应的函数,如果不正确,就是采用默认的函数
return f while True:
cmd = input('cmd: ')
if cmd == 'q':
break
if cmd in fn_map:
fn = fn_map[cmd] # 通过指令找函数
res = computed(10, 20, fn)
print(res)
else:
print('该运算暂不支持')
PythonStudy——函数对象的案例的更多相关文章
- PythonStudy——函数对象 Function object
# 在python中,所有变量存放的值只要是地址,我们就称之为对象# -- 所有的变量都是用来存放地址的,所以都是对象# -- 存放整型的地址就是整型对象 | 存放函数的地址就是函数对象 | 存放文件 ...
- python之三元表达式,列表|字典推导式,函数对象
#### 三元表达式: 就是if....else...的语法糖 # -- 1) 只能解决if...else...结构,其他if分支结构都不管 # -- 2)一个分支提供一个结果: 如果一个分支提供了多 ...
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
- 周末学习笔记——day01(函数,函数对象,嵌套调用,名称空间,作用域,闭包,装饰器)
一,复习 字符编码 文件头:py2—ASCII,py3—UTF-8 三种字符串:u' ' b ' ' r ' ' u' ' .endcode(' utf-8 ') b' '.deconde(' utf ...
- Python 入门基础10 --函数基础3 函数对象、名称空间、装饰器
今日内容 1.函数对象 2.名称空间与作用域 3.函数的嵌套调用与闭包 4.装饰器 一.函数对象 1.1 定义 函数名存放的就是函数地址,所以函数名也就是对象,称之为函数对象 1.2 函数对象的应用 ...
- 02--STL算法(函数对象和谓词)
一:函数对象(仿函数):实现状态记录等其他操作<相对于普通函数> 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象. 即是重载了“ ...
- STL 算法中函数对象和谓词
STL 算法中函数对象和谓词 函数对象和谓词定义 函数对象: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象.一个类对象,表现出一个函数的特 ...
- C++进阶 STL(2) 第二天 一元/二元函数对象、一元/二元谓词、stack容器、queue容器、list容器(双向链表)、set容器、对组、map容器
01 上次课程回顾 昨天讲了三个容器 string string是对char*进行的封装 vector 单口容器 动态数组 deque(双端队列) 函数对象/谓词: 一元函数对象: for_each ...
- python函数对象-命名空间-作用域-02
函数对象 函数是第一对象: # 函数名指向的值可以被当做参数传递 函数对象的特性(*****灵活运用,后面讲装饰器会用到) 函数名可以像变量一样被传递 # 变量可以被传递 name = 'jason' ...
随机推荐
- ansible-play中role的基本用法
#role应用 #roles跟调用角色的剧本文件应该与roles同级关系,即放在ansible目录下 #makir /root/ansible/roles/{nginx,http,ftp,mysql, ...
- day-02
昨天吧 需要写一个财务管理制度 很是伤脑 我发现一旦用脑过度 就会极其想吃零食 所以 昨天吃了些零食 说这个呢 无非是想说 我昨天学习python的时间很少 而且昨晚安装python软件也出现问题了 ...
- 使用turtle画故宫(伍奇,侯俊豪小组)
这个代码主要有两个部分,第一部分是画出故宫,第二部分是用random函数随机画心,故宫部分设置多个函数和循环再进行颜色填充即可完成. 此处为视频链接 from turtle import* impor ...
- python ---split()函数讲解
python ---split()函数讲解 split中文翻译为分裂. 在python用于分割字符串使用. split()就是将一个字符串分裂成多个字符串组成的列表. split()可以传入参数,也可 ...
- 【转】QT 添加外部库文件
转自:Qt 添加外部库文件 LIBS += D:\Code\Opengltest\OpenGL32.Lib D:\Code\Opengltest\GlU32.Lib # 直接加绝对路径 LIBS += ...
- C# 事件的使用方法
事件 事件是C#中另一高级概念,使用方法和委托相关.奥运会参加百米的田径运动员听到枪声,比赛立即进行.其中枪声是事件,而运动员比赛就是这个事件发生后的动作.不参加该项比赛的人对枪声没有反应. 从程序员 ...
- 信息技术手册可视化进度报告 基于jieba的关键字提取技术
在这一篇博客之前,我已经将word文件中的内容通过爬虫的方式整理到数据库中了,但是为了前台展示的需要,还必须提取出关键字,用于检索. 我用的是jieba分词,GitHub地址:https://gith ...
- MySQL从本地向数据库导入数据
本文来自:https://www.cnblogs.com/lettuce-u/p/10715795.html(自己收藏看) 在localhost中准备好了一个test数据库和一个pet表: mysql ...
- Lvs Dr 模式配置
1.Dr 安装 ipvsadm # yum -y install ipvsadm # lsmod | grep ip_vs #检查ipvs模块是否加载进系统.把ipvs模块加载进系统,需要我们执 ...
- 2017年4月28日16:40:40 log
//TODO order CreateOrderServiceHandler generateManagementCustomer 子活动名称和uid