zoukankan      html  css  js  c++  java
  • 神奇语言 python 函数的进阶

    动态传参

    def eat(*qwe): #*聚合 打包
    print(qwe) #元祖
    #形参位置: 位置参数> 动态位置参数
    eat()
    def eat(b= 1,**kargs):  #b =1  b =2
    print(kargs)
    eat("a=1","c=4","d=5","f=22")
    #动态关键字参数 默认参数> 动态默认参数
    def func(a,b,*args): #聚合
    print(a,b,*args) #打散 *
    func(1,2,3,4,5,6,7)
    def func (a=1,b=2,c=4,**kwargs): #聚合
    print(a,b,c,kwargs) #
    func(a=2,b=1,c=4,q=88)
    形参的顺序(重点):
    位置 *args 默认值 **kwargs
    以后写参数. 可以随意的进行搭配, 但是, 顺序不能串

    * 在形参位置. * 表示不定参数-接收的是位置参数
    接收到的位置参数的动态传参: 都是元组
    def chi(*food): # 在形参这里把传递过来的实参进行了聚合,聚合成了元组
    print(food)
    形参:
    *->元组, **->字典 表示聚合
    实参:
    *->列表,字符串,元组, **->字典 表示打散
    无敌传参
    def func(*args, **kwargs): # 参数没有限制. 随便传递
        print(args)
        print(kwargs)
    
    func(1,2,3,4, a=3,b=5)

    函数的嵌套;

    global a  # global 表示从全局把一个变量引入到局部, 后面使用的a都是全局变量
    a = 10
    # def func():
    #     def inner():
    #         # 慎用.
    #         global a  # global 表示从全局把一个变量引入到局部, 后面使用的a都是全局变量
    #         a += 10 # ?? a = a + 10 # 现在的a是全局的, 你现在视图改全局变量
    #         print("里面的打印",a)
    #     inner()
    # func()
    # print("外面的打印", a)
    nonlocal  在局部, 寻找离他最近的外层的一个变量
    a = 50
    # def func1():
    #     # a = 10 # 局部
    #     def func2():
    #         nonlocal a # 不找全局, global找全局
    #         a += 10 # a = a + 10 python不让这么干
    #         print("func2", a)
    #     func2()
    #     print(a)
    # func1()
    # print(a)
    
    # 如果没有nonlocal和global 查找的顺序: 自己, 上一层, 上一层, 上一层

    一般global 和nonlocal 用在那里

    flag = False
    
    def login():
        global flag
        uname = input("用户名:")
        upwd = input("密码:")
        if uname == "alex" and upwd == "123":
            flag = True
        else:
            flag = False
    
    def fatie():
        if flag == True:
            print("可以发帖")
        else:
            print("滚去登录")
    globals()全局查看局域内容
    locals()查看当前作用域中的内容


  • 相关阅读:
    [C语言
    [C语言
    [C语言
    [C语言
    [C语言
    [C语言
    [iOS]超详细Apache服务器的配置(10.10系统)
    IOS优秀博客
    「C」 数组、字符串、指针
    103.Binary Tree Zigzag Level Order Traversal(层序遍历)
  • 原文地址:https://www.cnblogs.com/zhangguangpei/p/10252428.html
Copyright © 2011-2022 走看看