zoukankan      html  css  js  c++  java
  • 2.函数

    1.创建函数‘

                def

                 lambda’

    2.函数参数

                 位置或关键字参数

       

    任意数量的位置参数
    ? 任意数量的位置参数在定义的时候是需要一个星号前缀来表示,在传递
    参数的时候,可以在原有参数的后面添加零个或多个参数,这些参数将
    会被放在元组内并传入到函数。带星号前缀的参数必须定义在不带两个
    星号的参数之后。如:
    ? def fun4(str1,*numbers):
    ? print fun4 , numbers
    ? >>>fun4(“numbers:”,1,2,3,4) #输出numbers: (1, 2, 3, 4)
    ? def fun4(*numbers,str1)这样定义参数列表是不允许的,因为同样有歧义
    任意数量的关键字参数
    ? 任意数量的关键字参数在定义的时候,参数名称前面需要有两个星号(**)
    作为前缀,这样定义出来的参数,在传递参数的时候,可以在原有的参
    数后面添加任意零个或多个关键字参数,这些参数会被放到字典内并传
    入到函数中。带两个星号前缀的参数必须定义在所有带默认值的参数之
    后。
    ? def fun4(a=1,*numbers,**kwargs):
    ? print a,numbers,kwargs
    ? >>>fun4(4,2,3,4,b=2,c=3)
    ? #输出4 (2, 3, 4) {'c': 3, 'b': 2}
    3.可变对象与不可变对象
    不可变对象:数值类型,字符串,yang ,元组
    可变对象 : 字典,列表
    python函数的参数都是对象的 引用,如果在引用不可变对象,函数外被引用的对象则不会改变
    如果希望赋值时可变对象不进行引用,而是重新分配地址空间并将数据复制,可以Python的copy模块。其中主要 函数有copy.copy和copy.deepcopy
    ? 1 copy.copy 仅仅复制父对象,不会复制父对象内部的子对象
    ? 2 copy.deepcopy 复制父对象和子对象
    4.作用域
    全局变量、局部变量
    在局部作用域中,如果全局
    变量与局部变量重名,那么全局变量会被局部变量屏蔽。如果想访问全
    局变量,可以使用globals函数:
    ? def print_x():
    ? x = 2
    ? print globals()[‘x’]
    ? >>> x = 1
    ? >>>print_x()
    ? >>>1

  • 相关阅读:
    常见英语单词后缀
    vim手册
    笔记《鸟哥的Linux私房菜》9 档案与文件系统的压缩与打包
    笔记《鸟哥的Linux私房菜》8 Linux 磁盘与文件系统管理
    Centos 搭建 NFS
    Python Unicode编码方式
    Centos 安装 OpenCV
    Centos 安装 Python Image PIL
    Linux 文件打乱顺序
    CentOS 安装ffmpeg
  • 原文地址:https://www.cnblogs.com/Firesun/p/10877872.html
Copyright © 2011-2022 走看看