zoukankan      html  css  js  c++  java
  • 函数的进阶(动态传参、名称空间、函数的嵌套)

    一、形参的第三种形式:动态参数

    动态参数分两种:

    1、动态接收位置参数,位置参数就是按照位置进行传参,当参数的数量不定的时候就编写*表示接收任意内容

    如def eat(*food)  >>这里的food可接收多个参数

    位置参数要在动态参数之前不然位置参数根本接收不到值

    默认值参数写在动态参数之前除非动态参数也取不到值否则默认参数也取不到值

    所以顺序应该以位置参数、动态参数、默认值参数进行

    2、动态接收关键字参数

    在python中可以动态的位置参数,但是*这种情况只能接收位置参数无法接收关键字参数。

    在python中使用**来接收动态关键字参数

    最终顺序(*):位置参数>*args>默认值参数>**kwargs

    若想接收所有的参数:

    def func(*args,**kwargs):

      print(arg,kwargs)

    func("大中华","利群",wr="文瑞")

    def fun(*args):

      print(args)

    lst = [1,3,4,5]

    fun(*lst)    #可以使用*把一个列表内容顺序打散

    s = "朕长命百岁"

    func(*s)     #字符串也可以打散,(可迭代对象)

    如果是一个字典,也可以打散不过需要两个**

    *、**在形参作用是聚合,在实参是打散的作用

    二、命名空间

     nonlocal调用外层中离他最近的一个非全局变量

    9,写函数,接收一个参数(此参数类型必须是可迭代对象),
    将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.
    def fun(lst):
    lst1 = []
    for i in lst:
    lst1.append(str(i))
    return '_'.join(lst1)
    print(fun([1,'老男孩','武sir']))
    认真做一件事,并将之完全学会掌握为止!
  • 相关阅读:
    MySQL补充
    不同操作系统下虚拟环境的搭建
    Python导学基础(二)变量与基础数据类型
    Python导学基础(一)介绍
    KM 算法
    题解-CF1065E Side Transmutations
    题解-CF1140E Palindrome-less Arrays
    题解-CF677D Vanya and Treasure
    splay文艺平衡树
    splay区间操作(bzoj1500)
  • 原文地址:https://www.cnblogs.com/wr13640959765/p/9175012.html
Copyright © 2011-2022 走看看