zoukankan      html  css  js  c++  java
  • 对于函数添加一些知识点

    嘟嘟嘟,小汽车开起来.

    先回顾下昨日内容

    函数:对功能或动作的封装

    语法:

    Def 函数名(形参列表)

    函数体(代码块,return)

    函数名(实参列表)

    形参:在函数声明的位置的是实参(变量)

    实参:在函数调用的时候给函数的形参传递信息的值

    传参:把实参的值交给形参的过程

    返回值:

    Return 可以终止一个函数的执行

    1. 什么都不写,不写return ,返回none

    2.只写return  后面什么都系都不加的话,返回的也是none

    3.return ,有一个返回值

    4.return 1.2.3...多个返回值.接受的是元祖(不可变)

    参数:

    形参:

    1. 位置参数
    2. 默认值参数
    3. 动态参数

    实参:

    1. 位置参数
    2. 关键字参数
    3. 混合参数, 顺序:先位置后关键字

    今日主要内容

    1. 函数的动态参数
    2. *args 位置参数动态传参
    3. **kwargs 关键字参数动态传参 返回的是一个字典相对应

    顺序 可以混搭 但是必须要前后一致

    顺序 位置参数,*args,,默认值参数,**kwargs

    形参的位置*,**:聚合

    实参的位置*,**:打散

    2.命名空间

    1.  内置名称空间

    2.  全局名称空间

    3.  局部名称空间

    作用域:

    1. 全局作用域: python内置函数+全局
    2. 局部作用域:局部(函数被调用)

    Globals()查看全局中的内容

    Locals()查看单签作用域中的内容

    1. 函数可以互相的嵌套

    4.   global: 在局部访问全局中的内容

         Nonlocal: 在局部寻找外层函数忠离他最近的那个变量

     单行注释
    '''多行注释'''
     函数注释
     def func(a, b):
     """
     这个函数是用来计算a和b的和
     :param a: 第一个数据
     :param b: 第二个数据
     :return: 返回的是两个数的和
     """
     return a + b

     print(func.__doc__) # document文档

     接收所有参数
     def func(*args, **kwargs):# 无敌 *args相当于一个聚合的作用
    print(args, kwargs)

    结合具体的实例


     形参: 聚合
     def func(*food): # 聚合, 位置参数
     print(food)
     lst = ["鸡蛋","煎饼果子","猪蹄","滋滋冒油"]
     # 实参: 打散
     func(*lst) # 打散. 把list, tuple, set, str 进行迭代打散

     聚合成关键字参数
     def func(**kwargs):
     print(kwargs)

     dic = {"name":'alex', 'age':'18'}
     func(**dic) # 打散成关键字参数

    def fn(): # fn也在全局名称空间
    b = 20 # 局部名称空间
    print(a)
    def gn():
    print(a)
    fn()
    gn()

    1. 内置, 2. 全局 , 3. 局部(函数调用)
    a = 110 # 全局
    def fn(): #
    b = 20 # 局部
    def gn(): # 局部
    print(globals()) # 可以查看全局作用域中的内容
    print(locals()) # 查看当前作用域中的内容
    gn()
    fn()

    def outer():
    print("哈哈")
    def inner_1():
    print("呵呵")
    def inner_1_1():
    print("嘻嘻")
    inner_1_1()
    print("吼吼")
    def inner_2():
    print("嘿嘿")
    inner_2()
    inner_1()
    outer()
    a = 1
    def fun_1():
    a = 2
    def fun_2():
    global a
    a = 3
    def fun_3():
    a = 4
    print(a)
    print(a)
    fun_3()
    print(a)
    print(a)
    fun_2()
    print(a)
    print(a)
    fun_1()
    print(a)
    运行结果是1234323


  • 相关阅读:
    C++: Ctor
    C++: RVO( return value optimization)
    alg_DP: LCS ( longest common substring )
    C++: TypeList
    android sdk入门(1)
    Ext.net 动态生成控件
    MVC常用控件
    学习MVC第一个增删修功能的本记
    学习MVC第二个实例登录代码(Model数据验证)
    在asp.net中使用自定义事件(带参数)
  • 原文地址:https://www.cnblogs.com/zzy7372/p/9448962.html
Copyright © 2011-2022 走看看