zoukankan      html  css  js  c++  java
  • Python基础知识(day9)

    day9

    今日内容

    • 参数
    • 作用域
    • 函数嵌套

    内容详细

    1. 参数

      • 任意个数

      • 任意类型

        # 参数科任意个数,任意类型
        def func(a1, a2, a3):
            print(a1, a2, a3)
        # 调用传参必须一一对应
        func(1, 'llk', True )
        
    2. 位置传参(调用函数并传入参数)

      传参与位置一一对应

    3. 关键字传参

      def func(a1, a2, a3):
          print(a1, a2, a3)
      # 关键字传参可以改变位置
      func(a1 = 2, a3 = 99, a2 = True)
      
      # 关键字传参可以和位置传参混合使用
      def func(a1,a2,a3):
          print(a1,a2,a3)
      func(1,'llk',a3 = 9) # 位置参数必须在前
      
    4. 默认参数[定义]

      # func接收两个参数,调用函数传值时,已定义的值可传或不传
      def func(a1,a2=99):
          pass
      func(1,2)
      func(1)
      
    5. 万能参数(打散)

      • *args

        def func(*a1): # a1潜规则为args
            pass
        func(1,2) # a1 = (1,2)
        func((1,2,3)) # a1 = ((1,2,3),)
        func(*(1,2,3)) # a1 = (1,2,3)
        
        def funcb(a1,*args):
            pass
        funcb(1,2,3,4,5) # print -> 1(2,3,4,5)
        
        
        • 只能用位置传参

        • 可以接收任意个数的参数,并将参数转换成元组

        • 调用函数无*

          def func(*args):
              print(args) 
          func(1,2,3,4)
          
        • 调用函数有*

          def func(*args):
              print(args) 
          func(*(1,2,3,4))
          
      • **kwargs

        • 只能关键字传参

        • 可以接收任意个数的关键字参数,并将参数转换为字典

        • 调用函数无**

          def func(**kwargs):
              print(kwargs) 
          func(k1=1,k2='llk')
          
          
        • 调用函数有**

          def func(**kwargs):
              print(kwargs)  
          func(**{'k1':'v1','k2':'v2'}) # kwargs={'k1':'v1','k2':'v2'}
          
      • 综合应用

        def func(*args,**kwargs):
            print(args,kwargs)
        

    作用域

    python中

    • py文件:全局作用域

    • 函数:局部作用域

      a = 1
      def s1():
          x1 = 666
          print(x1)
          print(a)
          print(b)
      b = 2
      print(a)
      s1()
      
    • 总结

      • 一个函数是一个作用域

      • 作用域查找数据规则:优先在本身作用域找数据,再到父级找,逐层往上,直到全局,否则报错

      • 子作用域只能找到父级的值,而不能对他进行重新赋值

      • 全局变量以后必须全部是大写

  • 相关阅读:
    SQL Server 触发器
    T-SQL查询进阶-10分钟理解游标
    有关T-SQL的10个好习惯
    iOS 画虚线以及drawRect的使用总结:
    iOS一个for循环实现,几行 几列 的布局形式
    IOS 符合某类型的子视图批量从父视图中移除
    DESC 和 ASC
    把数组格式数据转换成字符串存入数据库
    Swift :?和 !
    Swift 类构造器的使用
  • 原文地址:https://www.cnblogs.com/lilangkui/p/12547411.html
Copyright © 2011-2022 走看看