zoukankan      html  css  js  c++  java
  • Python基础10_动态传参,名称空间和作用域,函数嵌套,关键字global和nonlocal

    一.函数参数-形式参数-动态传参
    1. 动态接收位置参数 args
    在参数位置编写
    表示接收位置参数,在形参位置把传递过来的实参进行聚合,聚合成元祖
    注意:动态参数必须在位置参数后面
    2. 动态接收关键字参数 kwargs
    在参数位置编写
    表示接收动态关键字参数,接收的是一个字典
    动态传参的最终顺序: 位置参数 > args > 关键字参数 > kwargs
    可以随意搭配,但顺序不能变
    形参: 聚合
    位置参数
    -> 元组
    关键字参数
    -> 字典
    实参: 打散
    列表, 字符串, 元素 -> *
    字典 -> **
    3. 动态传参的另一种传参方式:
    def chi(args):
    print(args)
    lst = [a, b, c]
    chi(
    lst)
    #在实参位置上给一个列表,元祖或字符串,前面加表示表示把这个序列按顺序打散
    #在形参的位置上加
    表示把接收道德参数组合成一个元祖
    如果实参位置是一个字典,也可以打散,但是要加**
    4. 无敌传参
    def func(*args, **kwargs) 任何参数都可以接收
    二. 命名空间和作用域
    1.命名空间:存放名字和值的关系的空间,变量就是存储在这个空间
    分类:
    全局名称空间:我们直接在py文件中函数外声明的变量都数以全局名称空间
    局部名称空间:在函数中声明的变量会放在局部名称空间
    内置名称空间:存放在python解释器中的一些内置内容
    加载顺序: 内置名称空间,全局名称空间,局部名称空间(函数被执行的时候)
    取值顺序:局部名称空间,全局名称空间,内置名称空间
    名称空间可能有无数个
    局部名称空间是相互独立的
    2.作用域:就是作用范围,按照生效范围分为全局作用域和局部作用域
    全局作用域:包含内置名称空间和全局名称空间,整个文件的任何位置都可以使用(遵循从上到下逐行进行)
    局部作用域:包含局部名称空间,在函数内部可以使用
    globals() 查看全局作用域中的内容 写在哪查看哪的内容 返回值类型是字典
    locals() 查看局部作用域中的变量和函数信息 写在哪里都一样查看全局作用域内容 返回值类型是字典
    可以从局部作用域向全局作用域寻找
    三. 函数的嵌套
    在函数中声明函数
    只要遇见了()就是函数的调用,如果没有()就不是函数的调用
    在内部函数中使用变量的时候, 查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置
    四. 关键字global和nonlocal
    global 表示从全局把一个变量引入到局部
    nonlocal 表示在局部寻找离他最近的外层的一个变量

  • 相关阅读:
    Callback2.0
    设计模式之Composite
    设计模式之Proxy
    React Native DEMO for Android
    React Native 与 夜神模拟器的绑定
    Skipping 'Android SDK Tools, revision 24.0.2'; it depends on 'Android SDK Platform-tools, revision 20' which was not installed.
    .ui/qrc文件自动生成.py文件
    简单排序算法
    Big O
    设计模式之Adapter
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10085476.html
Copyright © 2011-2022 走看看