zoukankan      html  css  js  c++  java
  • 学习python的第十天------函数的进阶

    本节主要内容:

    1. 函数参数--动态传参

    2. 名称空间, 局部名称空间, 全局名称空间, 作⽤用域, 加载顺序.

    3. 函数的嵌套

    4. gloabal, nonlocal关键字

    ⼀一. 函数参数--动态传参

    1. 动态接收位置参数

    def chi(*food, a, b):   

    print("我要吃", food, a, b)

    chi("⼤大⽶米饭", "⼩小⽶米饭", a="⻩黄⽠瓜", b="茄⼦子")

    def chi(*food):   

    print("我要吃", food)

    chi("⼤米饭", "⼩米饭")

    结果: 我要吃 ('大米饭', '小米饭')    # 多个参数传递进去. 收到的内容是元组tuple

    在python中使⽤**来接收动态关键字参数
     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}

     最终顺序(*):       

    位置参数 >  *args > 默认值参数 > **kwargs

    三. 函数的嵌套

    # 函数的嵌套 def fun2():    
    print(222)    
    def fun3():       
     print(666)    
    print(444)    
    fun3()    
    print(888) 
    print(33) 
    fun2() 
    print(555)

    四. 关键字global和nonlocal

    a = 100 
    def func():    
    global a    # 加了了个global表示不不再局部创建这个变量量了了. ⽽而是直接使⽤用全局的a    
    a = 28   
     print(a) 
    func() 
    print(a) 

    nonlocal 表⽰示在局部作⽤用域中, 调⽤用⽗父级命名空间中的变量.

    a = 10 
    def func1():    
    a = 20    
    def func2():
            nonlocal a       
     a = 30       
     print(a)   
     func2()    
    print(a)
    func1() 结果: 加了了nonlocal 30 30 不不加nonlocal 30 20
     
  • 相关阅读:
    Redis面试题
    spring boot错误: 找不到或无法加载主类
    JAVA的高并发编程
    Redis多机多节点集群实验
    Redis单机多节点集群实验
    Redis集群概述
    Redis的持久化之AOF方式
    Redis的持久化之RDB方式
    Redis持久化介绍
    Redis Keys的通用操作
  • 原文地址:https://www.cnblogs.com/DanielYang11/p/9879860.html
Copyright © 2011-2022 走看看