zoukankan      html  css  js  c++  java
  • 函数

    函数定义

          使用def关键字,如    def  functionName(参数列表)

    函数的参数

           Python中任何变量都是对象,所以只支持按引用传递。Python通过名字绑定机制把实际参数的值和形式参数的名字绑定在一起。即把形式参数传递到函数所在的局部命名空间,形式参数和实际参数指向同一存储空间

      默认参数

           函数的参数支持默认参数。当某个参数没有传递实际值时,函数将使用默认参数。

    1 def append(args=[]):
    2     args.append(0)
    3     print args
    4 append()
    5 append([1])
    6 append([2,3])
    7 append()

    结果:

    line4:[0]
    line5:[1, 0]
    line6:[2, 3, 0]
    line7:[0, 0]

    注意line4和line7为何是这样的结果呢?(第一次见到时我也疑惑了)因为Python参数是按引用传递的,line4中使用默认参数在函数执行完后在结尾追加了[0],line7中再次使用默认参数时,默认参数已被line4修改为[0],再追加[0]就是[0,0]了。

      可变参数

      在形式参数前使用“ * ”标志符可实现可变参数。

    1 def func(*args):
    2     print args
    3 func(1,2,3)

    结果:(1, 2, 3)

      在形似参数前使用“ ** ”标志符,可以引用一个字典,该字典根据实际参数的赋值表达式生成。

      Python语法规定“*”必须写在“**”前面。

     1 def search(*t, **d):
     2     keys = d.keys()
     3     values = d.values()
     4     print keys
     5     print values
     6     for arg in t:
     7         for key in keys:
     8             if arg == key:
     9                 print "find", arg, d[key]
    10                 
    11 search("A", "B", "C", A = '1', C = '3', B = '2', D = '4')

    结果:

    ['A', 'C', 'B', 'D']
    ['1', '3', '2', '4']
    find A 1
    find B 2
    find C 3

    函数返回值

      函数的返回使用return语句,return后可以是变量或者表达式。

      Python中即使函数没有使用return语句,仍然能获得返回值。

    1 def func():
    2     pass
    3 
    4 b = func()
    5 print b

    结果:None

    None是Python中的一个对象,及不是数字也不是字符。当函数的return后没有对象时,也会返回None。

  • 相关阅读:
    LED点阵书写显示
    cpld fpga 区别
    SublimeText 自带格式化代码功能
    iText C# 合并PDF文件流,以及A5变A4时内容默认放在最底下的问题的解决方法;ASP.NET 实现Base64文件流下载PDF
    Adobe Acrobat 9 Pro序列号
    c#比较两个数组的差异
    iNotify.js通知JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知。
    配置IISExpress允许外部访问
    https://sweetalert2.github.io/
    c# 利用MailKit.IMap 收取163邮件
  • 原文地址:https://www.cnblogs.com/baiyideng/p/3641231.html
Copyright © 2011-2022 走看看