zoukankan      html  css  js  c++  java
  • Python函数(二)

    匿名函数

    Python中使用lambda来创建匿名函数。

    • lambda只是一个表达式,函数体简单
    • lambda是一个表达式,而不是一个代码块,仅仅能在lambda表达式中封装有限的逻辑进去。
    • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
    • lambda一般只能写一行。

    语法格式:

    lambda [arg1, [, arg2, ]]:expression
    

    示例代码:

    result = lambda arg1, arg2 : arg1 + arg2
    
    # 调用result函数
    print(result(10, 20))
    

    return关键字

    return关键字用于函数返回值,如果没有返回值就返回None。

    示例代码:

    def result(arg1, arg2):
        total = arg1 + arg2
        return total
    
    
    res = result(10, 20)
    print(res)
    

    变量作用域

    在所有的编程语言当中,都存在变量的作用域,一个程序的变量并不是在哪个位置都可以访问的。

    全局变量和局部变量

    定义在函数内部的变量拥有一个局部作用域,定义在函数外拥有全局作用域。
    函数会优先使用局部变量,局部没有变量则去找全部变量。

    示例代码:

    total = 10 # 全局变量
    
    def result(arg1, arg2):
        # 局部变量total
        total = arg1 + arg2
        print("函数内的局部变量是", total)
        return total
    
    
    result(10, 20)
    print("函数外是全局变量", total)
    

    global关键字

    • 将变量定义为全局变量,可以通过定义为全局变量,实现在函数内部修改变量值。
    • 一个global关键字可以同时定义多个变量,如global x,y,z

    示例代码:

    num = 10
    
    def set_num_value():
        # 使用global声明全局变量
        global num
        num = 30
        return num
        
    def print_num():
        # 未使用global关键字
        print(num)
    
    print(set_num_value())
    print(num)
    

    可以看到在使用global关键字之后,num的值为30,已经经过global关键字在函数内部修改了num的值。

  • 相关阅读:
    安卓任意两个或多个Fragment之间的交互与刷新界面
    内存溢出和内存泄漏
    求直方图围成的最大矩形面积
    判断一个字符串是否是由另2个字符串交错组成的
    矩阵的旋转
    求滑动窗口的最大值
    面向过程和面向对象的区别
    关于丑数
    求连续子数组的最大和
    多数投票算法(Majority Vote Algorithm)
  • 原文地址:https://www.cnblogs.com/liudemeng/p/12245816.html
Copyright © 2011-2022 走看看