zoukankan      html  css  js  c++  java
  • 函数(二)

    1.函数的动态参数:

      1.*args   位置参数动态传参

        

    1 def fun(a,b,c,d,e):
    2     print(a,b,c,d,e)
    3 fun(1,2,3,4,5)

    结果:1 2 3 4 5

    顺序:位置参数=>*args=>默认值参数

    *在这里表示接收位置参数的动态传参,接收到的是元组

    1 def fun(a,*b,c=5): #参数名是b,*表示动态传参
    2     print(a)
    3     print(b)
    4     print(c)
    5 fun(1,2,3,4)

    结果为:1

         2 3 4

         5

    将第一个值赋值给a,后面的值都给b

      2.**kwargs  关键字参数动态传参

        

    1 def fun(a,**kwargs):
    2     print(a)
    3     print(args)
    4 fun(1,b=2,c=3)

    结果为:

        1

        {'b':1,'c':2}

    **在这里表示的是接收关键字的动态传参,接收到的是字典

    顺序:位置参数,*args,默认值参数,**kwargs


    以上参数可以随意搭配使用

    1  def fun(a, *args, c="哈哈",  **kwargs):
    2      print(a, args, c, kwargs)
    3  fun(1, 2, 3, 4,5, 6)

    结果为:

        1,(2,3,4,5,6),哈哈,{}

    单行注释#

    多行注释'''  '''

    1 def fun(a,b):
    2     """
    3     #这个函数是用来计算a和b的和
    4     :param a:#第一个数据
    5     :param b:#第二个数据
    6     :return:#返回的是两个数的和
    7     """
    8     return a+b
    9 fun(1,2)

    接收所有参数

    def fun(*args,**kwargs):

      print(args,kwargs)

    fun(1,2,3,a=4,b=5)

    *在形参位置:聚合(位置参数)

    1 def fun(*lst):
    2     print(lst)
    3 
    4 lst = [1,2,3,4,5]
    5 fun(lst)

    结果为:([1,2,3,4,5])

    *在实参位置:打散

    1 def fun(*lst):
    2     print(lst)
    3 
    4 lst = [1,2,3,4,5]
    5 fun(*lst)#把list,tuple,set,str进行迭代打散

    结果为:(1,2,3,4,5)

    **在形参位置(聚合成关键字参数)

     

    1 def fun(**kwargs):
    2     print(kwargs)
    3 dic = {"name":"abc","age":18}
    4 fun(**dic)#**在实参位置打散成关键字参数

    结果为:

    {"name":"abc","age":18}

    2.命名空间

      1.内置名称空间

      2.全局名称空间

      3.局部名称空间

    1 a = 10#全局名称空间    
    2 def fun():#fn也在全局名称空间
    3     b = 20#局部名称空间
    4     print(a)
    5 fun()

    globals()可以查看全局作用域中的内容

    locals()可以查看当前作用域中的内容

    3.global和nonlocal

    global:

    1 a = 10#全局变量,本身不安全,不能随意修改
    2 def fun():
    3     global a#  1.可以把全局中的内容引入到函数内部,2.在全局创建一个变量
    4     a = 20
    5     a += 10
    6     print(a)
    7 fun()

    nonlocal:

    1 a = 10
    2 def outer():
    3     def inner():  #在inner中改变a的值
    4         nonlocal a  #寻找外层函数中离他最近的那个变量
    5             a = 20
    6     inner()
    7 outer()

    函数可以互相嵌套

  • 相关阅读:
    哈希表详解
    简单字典实现(KV问题)
    【数据结构】——搜索二叉树的插入,查找和删除(递归&非递归)
    【数据结构】——堆及其应用
    初学者的迷茫
    【数据结构】顺序表和链表
    程序运行机理
    回调函数到底是怎么一回事呢?
    C语言中函数可变参数解析
    《剑指offer》数组中出现次数超过数组长度一半的数字
  • 原文地址:https://www.cnblogs.com/s593941/p/9451769.html
Copyright © 2011-2022 走看看