Python中一切皆对象(object).–Dive Into Python

既然一切皆对象,那么一切都可以作为参数传递!

1、定义两个简单的函数

  • 函数1–add_params(a,b):

    a,b两个数字
    返回:a+b

  • 函数2–mult_params(func,a,b,c):
    a,b,c 为数字,func是函数
    返回:func(a,b)*c

def add_params(a,b):return a+bdef mult_params(func,a,b,c):return func(a,b)*c

2、调用测试

a,b,c = 1,2,3# add_params(a,b)= 1 + 2 = 3
r1 = add_params(a,b)# mult_params(func,a,b,c) = (1+2)*3 = 3*3 = 9
r2= mult_params(add_params,a,b,c)print(r1)
print(r2)
3
9

3、再简化一点

被调用的函数可能参数较多,如果老是在定义新函数时写原变量名就比较麻烦,因此偷点懒。使用kwargs传参。

def mult_dict(func,c,**params):return func(**params)*c
r3 = mult_dict(add_params,c,b=2,a=1)
print(r3)
9

结果正确。

4、小结

Everything is object in Python。

灵活运用有奇效!

Python函数作为参数传递给函数相关推荐

  1. 函数作为参数传递至函数内部进行调用

    函数作为参数传递至函数内部进行调用 回调函数的简单使用 由于函数内部的一个函数内部需要调用一个函数A,一般的做法是包含A所在的头文件,有时候这样做会导致头文件的相互包含,层次结构不清晰.此时有另一种较 ...

  2. 函数指针(函数作为参数传递给其他函数)

    函数也有地址,函数的地址是存储其机器码的内存的开始的地址,并且函数的地址就是其函数名.因此我们可以将函数作为参数传递给其他函数.正如python中可以将函数轻易的传递给其他函数一样,但是C++中形式上 ...

  3. C++中函数作为参数传递给其他函数

    简单的说,如果有函数的参数声明为函数指针类型的.则可以给函数传入另一个函数作为它的参数,在函数的内部可以调用传入的函数: 例如下面给一些例子: int add(int x, int y) // 定义函 ...

  4. ostream作为函数返回值_函数的调用(一)

    函数作为计算机代码的一种抽象方式,它的作用不言而喻! 原文链接 认识函数: 定义:函数是一段代码的表示,是一段具有特定功能的,可重用的语句组 函数是一种功能的抽象,一般函数表达特定功能 两个作用:降低 ...

  5. Linux C 函数指针应用---回调函数

    (这里引用了知乎上一些知友的回答,感觉不错,有助于理解,这里引用作为借鉴,如有冒犯,烦请告知) 我们先来回顾一下函数指针,函数指针是专门用来存放函数地址的指针,函数地址是一个函数的入口地址,函数名代表 ...

  6. react封装函数_react request.js 函数封装

    1.request.js  函数封装 import { Toast } from 'antd-mobile'; import axios from 'axios'; import store from ...

  7. Linux C 函数指针应用---回调函数

    (这里引用了知乎上一些知友的回答,感觉不错,有助于理解,这里引用作为借鉴,如有冒犯,烦请告知) 我们先来回顾一下函数指针,函数指针是专门用来存放函数地址的指针,函数地址是一个函数的入口地址,函数名代表 ...

  8. append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域

    " 这一节有点难.看不懂没关系.继续往后学,回头再来看." 10.6 函数参数传递的机制 10.6.1 值传递与引用传递 编程语言的参数传递机制通常有两种: 值传递 拷贝参数的值, ...

  9. python函数参数列表_python函数的列表参数传递

    今天看书的时候发现对python函数的参数传递不是很了解,于是上网查询了一下资料.首先,看一下以下的代码: def default_para_trap(para=[],value=0): para.a ...

最新文章

  1. CNN模型之MobileNet
  2. TCP三次握手和四次断开
  3. Caffe部署中的几个train-test-solver-prototxt-deploy等说明三
  4. “数据中台”是什么?
  5. 华为项目Tree canvas画图2
  6. 直男不懂女人心?10953 条数据告诉你女王节送什么口红色号!
  7. 技术至简-10: CPRI链路速率、5G小区带宽与AxC映射关系快速查询表
  8. R语言分类变量独立性检验(Tests of independence)、使用Fisher精确检验fisher.test函数检验分类变量的独立性( test of independence)
  9. appium +夜神模拟器 java代码sendkeys 无法在模拟器输入中文
  10. Python爬虫实战 - 抓取BOSS直聘职位描述 和 数据清洗
  11. 字节跳动打响「教育战」
  12. 权限管理系统设计——入门(一)
  13. Word中的TIF图像保存后再打开就模糊了
  14. 程序员版孔乙己(故事小篇)
  15. 做为一个开源软件开发者,需要什么样的开源许可证?(一)
  16. 牛人的笔记本拆装-来自百度贴吧
  17. Unix网卡重启命令
  18. 计算机去广告,计算机音乐去广告版
  19. 模式识别报告:HWDB1.1手写汉字识别
  20. 电脑版微信发不出去文字和文件

热门文章

  1. mysql istransient_由于 MySQL 版本问题导入报错
  2. php缩紧空格,使用php-cs-fixer修复PHP代码文件的缩进
  3. 95% CI, 置信区间 Confidence Interval
  4. 关于vue,angularjs1,react之间的对比
  5. HDU ACM 4031 Attack (树状数组--单点查询+区间更新)
  6. Linux Gedit 打开txt文件乱码
  7. 关于可观察性的三大支柱,你应该了解这些
  8. 全局脚手架了解一下【fle-cli】
  9. 如何用JavaScript手动实现一个栈
  10. JS中点语法和方括号语法访问属性的区别