• python day10 参数,命名空间


    一、函数的参数--动态传参

    1.动态接收位置参数

    1.1在参数位置编写*表示接收任意多个内容

    def chi(*food):
        print("我要吃", food)
    chi("⼤大⽶米饭", "⼩小⽶米饭")
    结果:
    我要吃 ('⼤大⽶米饭', '⼩小⽶米饭') # 多个参数传递进去. 收到的内容是元组tuple

    1.2动态接收参数的时候要注意: 动态参数必须在位置参数后面

    def chi(a, b, *food):
      print("我要吃", a, b, food)
    chi("⼤米饭", "⼩米饭", "馒头", "⾯面条") # 前两个参数用位置参数来接收, 后⾯的参数⽤
    动态参数接收

    1.3默认值参数写在动态参数前面,位置参数,>动态参数*,>默认值参数

    def chi(a, b, *food, c="娃哈哈"):
        print(a, b, food, c)
    chi("香蕉", "菠萝") # 香蕉 菠萝 () 娃哈哈 默认值⽣生效
    chi("香蕉", "菠萝", "葫芦娃") # 香蕉 菠萝 ('葫芦娃',) 娃哈哈 默认值⽣生效
    chi("香蕉", "菠萝", "葫芦娃", "口罩") # 香蕉 菠萝 ('葫芦娃', '口罩') 娃哈哈 默
    认值⽣生效

    2.动态接收关键字参数

    def func(**kwargs):
        print(kwargs)
    func(a=1, b=2, c=3)
    func(a=1, b=2)
    结果:
    {'a': 1, 'b': 2, 'c': 3}
    {'a': 1, 'b': 2}

    位置参数 > *动态参数 > 默认值参数 > **关键字参数

    2.1动态参数的另⼀一种传参⽅方式:在实参位置上给⼀个序列,可对象前⾯加个*表示把这个序列按顺序打散.

    def fun(*args):
        print(args)
        lst = [1, 4, 7]
    fun(lst[0], lst[1], lst[2])
    fun(*lst) # 可以使⽤用*把⼀一个列列表按顺序打散
    s = "臣妾做不不到"
    fun(*s) # 字符串也可以打散, (可迭代对象)

    2.2 在形参的位置上的* 表示把接收到的参数组合成一个元组,如果是一个字典, 那么也可以打散. 不过需要用两个*。

    二、命名空间

    1.命名空间的分类:

    1).全局命名空间:在函数之外的变量

    2).局部命名空间 :在声明函数里面的变量

    3).内置命名空间:python内置的命名如list tuple

    2.加载顺序:

    1).内置命名空间

    2).全局命名空间

    3).局部命名空间

    3.取值顺序:

    1).局部命名空间

    2).全局命名空间

    3).内置命名空间

    4.作用域: 作⽤域就是作用范围, 按照生效范围来看分为 全局作用域和局部作用域

    全局作用域: 包含内置命名空间和全局命名空间. 在整个文件的任何位置都可以使用(遵循从上到下逐行执行)。

    局部作用域: 在函数内部可以使用。

    我们可以通过globals()函数来查看全局作⽤用域中的内容, 也可以通过locals()来查看局部作
    ⽤用域中的变量量和函数信息

    a = 10
    def func():
        a = 40
        b = 20
    def abc():
        print("哈哈")
        print(a, b) # 这⾥里里使⽤用的是局部作⽤用域
        print(globals()) # 打印全局作⽤用域中的内容
        print(locals()) # 打印局部作⽤用域中的内容
    func()

    三、函数的嵌套

    不讲了!哼!

  • 相关阅读:
    闲谈随笔以及对自己的心里暗示
    java利用Scanner获取键盘输入
    【积累】发送验证码按钮倒计时js
    【积累】validate验证框架的使用
    重写toString()方法来描述一个类
    【java基础】 合并两个类型相同的list
    java单例类/
    基本类型的包装类
    强转
    【java基础】面向对象的三大特征---多态
  • 原文地址:https://www.cnblogs.com/snackpython/p/9951372.html
Copyright © 2020-2023  润新知