zoukankan      html  css  js  c++  java
  • python函数的进阶

    1. 动态传参
    *, ** :
    形参: 聚合
    位置参数* -> 元组
    关键字** -> 字典
    实参: 打散
    列表, 字符串, 元素 -> *
    字典 -> **
    形参顺序(重点):
    位置, *args, 默认值, **kwargs

    无敌传参
    def func(*args, **kwargs): arguments参数 keyword-arguments关键字参数
    pass

    2. 作用域和名称空间
    名称空间: 用来存放名字(变量, 函数名, 类名, 引入的模块名)的

    1. 全局名称空间: 我们在py文件中自己写的变量, 函数.....
    2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....)
    3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间. 放的是: 函数内部的内容(变量, 函数,类...)

    名称空间可能会有无数个, 局部名称空间而言. 相对是独立的.一般互不干扰

    作用域:
    1. 全局作用域: 内置+全局
    2. 局部作用域: 局部

    globals() 查看全局作用域
    locals() 查看当前作用域

    3. 函数的嵌套
    在函数中声明函数
    在内部函数中使用变量的时候, 查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置

     1 def func0():
     2     a = 50
     3     def func1():
     4         a = 10  # 局部
     5         def func2():
     6             nonlocal a
     7             a += 10  # a = a +10 python不让这么干
     8             # a = 30
     9             print('func2', a)
    10         func2()
    11         print(a)
    12     func1()
    13     print(a)
    14 func0()
    15 flag = False

    4. nonlocal和global关键字
    global: 在局部引入全局变量

     1 a = 10
     2 def func():
     3     def inner():
     4         # 慎用
     5         global a  # global 表示从全局把一个变量引入到局部,后面使用的a都是全局变量
     6         a += 10  # ?? a = a+10 # 现在的a是全局的,你现在视图改变全局变量 +global可改
     7         print('里面的打印', a)
     8 
     9     inner()
    10 func()
    11 print('外面的打印', a)


    nonlocal: 在局部...内层函数引入外层离他最近的那个变量.

     1 nonlocal 在局部,寻找离它最近的外层的一个变量
     2 a = 50
     3 def func1():
     4     a = 10 # 局部
     5     def func2():
     6         nonlocal a
     7         a += 10 # a = a +10 python不让这么干
     8         # a = 30
     9         print('func2', a)
    10     func2()
    11     print(a)
    12 func1()
    13 print(a)
  • 相关阅读:
    第12月第30天 love2d
    第12月第29天 cocos quick manual
    cpu test
    learning armbian steps(10) ----- armbian 源码分析(五)
    Linux command nmon
    learning ddr Electrical Characteristics and AC Timing
    learning ddr tRP and tRP tRTP CL tRAS
    进入Windows之前发出警告
    向系统日志 写入自定义数据
    创建并写入自定义日志信息
  • 原文地址:https://www.cnblogs.com/beargod/p/10098420.html
Copyright © 2011-2022 走看看