把函数当参数传递

  1. # 函数参数传递
  2. # 面向对象编程就是把对象传来传去
  3. # 面向函数编程就是把函数传来传去
  4.  
  5. def mytest(num):
  6. return num * 2
  7.  
  8. # # 不光可以传递变量,还可以传递函数
  9. def convert(func, seq):
  10. print 'convert sequence of numbers to same type'
  11. return [func(eachNum) for eachNum in seq]
  12.  
  13. myseq = [123, 45.67, -6.2e8, 99999999L]
  14. # # 面向对象编程说白了就是把对象传来传去,对象是第一要素
  15. # # 面试函数编程说白了就是把函数传来传去,函数是第一要素
  16. print convert(int, myseq)
  17. print convert(long, myseq)
  18. print convert(float, myseq)
  19. print convert(mytest, myseq)

函数的递归:

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00137473836826348026db722d9435483fa38c137b7e685000

指定可变参数

  1. #--encoding:utf-8--
  2.  
  3. print '---------------给参数指定默认值-----------------------'
  4. def taxMe(cost,rate=0.85):
  5. return cost * rate
  6.  
  7. print taxMe(5) #4.25
  8.  
  9. print '---------------给有默认值的参数指定值-----------------------'
  10.  
  11. print taxMe(5,2) #10
  12.  
  13. #在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个
  14. #可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple
  15. print '---------------给函数指定可变参数(参数个数不确定)-----------------------'
  16.  
  17. def taxMe2(cost,rate=0.85,*theRest):
  18. for aRest in theRest:
  19. cost+=cost+aRest
  20. print 'arg:',aRest
  21. return cost+cost*rate
  22.  
  23. print taxMe2(10, 0.5,10,11,12,13,14)
  24.  
  25. #而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
  26. print '---------------给函数指定关键字参数(参数个数不确定)------------------------'
  27.  
  28. def taxMe3(cost,rate=0.85,**theRest):
  29. for key in theRest.keys():
  30. cost +=theRest[key]
  31. print key,':',theRest[key]
  32. return cost+cost*rate
  33. print taxMe3(00, 0.05, electric=100, water=200, gas=300)
  34.  
  35. #在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,
  36. #这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
  37. print '--------------给函数指定可变参数+关键字参数------------------------'
  38.  
  39. def taxMe4(cost,rate=0.85,*theRest,**theRest2):
  40. cost2=0
  41. for forRest in theRest:
  42. cost2+=forRest
  43. print 'theRest:',forRest
  44. for key in theRest2.keys():
  45. cost+=theRest2[key]
  46. print 'theRest2:key:',key,',value:',theRest2[key]
  47. return cost+cost2+(cost+cost2)*rate
  48.  
  49. print taxMe4(100, 50,100,150,300, electric=100 ,water=200,gas=30)

结果:

  1. ---------------给参数指定默认值-----------------------
  2. 4.25
  3. ---------------给有默认值的参数指定值-----------------------
  4. 10
  5. ---------------给函数指定可变参数(参数个数不确定)-----------------------
  6. arg: 10
  7. arg: 11
  8. arg: 12
  9. arg: 13
  10. arg: 14
  11. 984.0
  12. ---------------给函数指定关键字参数(参数个数不确定)------------------------
  13. water : 200
  14. gas : 300
  15. electric : 100
  16. 630.0
  17. --------------给函数指定可变参数+关键字参数------------------------
  18. theRest 100
  19. theRest 150
  20. theRest 300
  21. theRest2key: water ,value: 200
  22. theRest2key: gas ,value: 30
  23. theRest2key: electric ,value: 100
  24. 49980

更多关于函数参数的帮助:

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000

Python学习笔记7-把函数当参数传递、指定可变参数的更多相关文章

  1. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  2. Python学习笔记010——匿名函数lambda

    1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...

  3. Python学习笔记:open函数和with临时运行环境(文件操作)

    open函数 1.open函数: file=open(filename, encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件 ...

  4. python学习笔记11(函数二): 参数的传递、变量的作用域

    一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...

  5. Python学习笔记总结(二)函数和模块

    一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege', ...

  6. Python学习笔记4(函数与模块)

    1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工 ...

  7. 吴裕雄--天生自然python学习笔记:Python3 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这 ...

  8. Python 学习笔记 之 03 - 函数总结

    函数总结    最基本的一种代码抽象的方式.    定义函数    使用def语句进行定义, return进行函数返回.    一旦执行导return,函数就执行完毕.    即使函数未指定retur ...

  9. Python学习笔记五,函数及其参数

    在Python中如何自定义函数:其格式为 def 函数名(函数参数): 内容

  10. Python学习笔记(Ⅱ)——循环/选择/函数

    一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...

随机推荐

  1. Oracle EBS-SQL (QA-2):检查接收未检验.SQL

    SELECT rsh.receipt_num                                                       收据号,         pov.vendor ...

  2. KeyEvent

    http://blog.csdn.net/elfylin/article/details/8008763 一. 接口KeyEvent.Callback和View.OnKeyListener 二. 流程 ...

  3. Ubuntu Mysql开通外网访问权限

    Ubuntu Mysql开通外网访问权限   1.编辑 my.cnf 文件: sudo vi /etc/mysql/my.cnf   2.将绑定地址行注释掉或者修改为指定 IP #bind-addre ...

  4. 让Maven正确处理javac警告

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default ...

  5. 必学100个常用linux命令大全

    1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...

  6. css案例学习之relative与absolute

    代码 <!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...

  7. thinkphp中神奇的create()方法

    正常的表单提交会把所有的表单数据提交上来 $data = $_POST; print_r($data);exit; 结果 Array ( [status] => 1 [comment] => ...

  8. 将常见对象转换成json字符串

    public class JsonUtil { public static String objectTojson(Object obj) { StringBuilder json = new Str ...

  9. MS Sql 查询数据库连接数

    SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN (SELECT [DBID]FROM [Master].[dbo].[SYSDA ...

  10. magento产品导入时需要注意的事项

    (1) 必须保证csv文件是utf-8编码的.非utf-8的编码会导致产品导入失败 (2)产品图片 (a) 产品图片必须包含image,image_label,_media_image,_media_ ...