• Python函数的特点


    函数对象

    一、函数对象的四大工能

    1.引用

    def helllo():
    	x='helllo word'
    f=func
    print(f)
    

    2.当作参数传给一个函数

    def foo(m):
        m()
    
    foo(func)
    

    3.可以当作函数的返回值

    def foo(x):
        return x
    
    
    res = foo(func)
    print(res)
    res()
    

    4.可以当作容器类型的元素

    def lis():
    	return x
    lis_abc=[lis]
    

    二、可变长参数

    一、不定长参数*

    你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。基本语法如下:

    def functionname([formal_args,] *var_args_tuple ):
       "函数_文档字符串"
       function_suite
       return [expression]
    

    加了星号 ***** 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

    二、不定长参数**

    还有一种就是参数带两个星号 **基本语法如下:

    # 可写函数说明
    def printinfo( arg1, **vardict ):
       "打印任何传入的参数"
       print ("输出: ")
       print (arg1)
       print (vardict)
     
    # 调用printinfo 函数
    print(info(1, a=2,b=3))
    

    加了两个星号 ** 的参数会以字典的形式导入。

    三、函数的嵌套

    就简单说明一下就好,语法与流程语句嵌套类似

    def f1():
        def f2():
            print('from f2')
        f2()
    
    
    f2()  # NameError: name 'f2' is not defined
    

    如何调用***

    def max2(x, y):
        if x > y:
            return x
        else:
            return y
    
    
    def max4(a, b, c, d):
        res1 = max2(a, b)
        res2 = max2(res1, c)
        res3 = max2(res2, d)
        return res3
    
    
    print(max4(1, 2, 3, 4))
    

    四、函数的作用域

    1、全局变量

    可以在函数或者整段代码中使用的变量

    x = 1
    
    
    def func():
        pass
    
    
    l = [1, 2]
    
    if 3 > 2:
        if 4 > 3:
            z = 3
    

    2、局部变量

    仅仅在函数内部使用,无法影响全局变量的形式

    x=1
    def jubu():
    	x=10
    	return x
    print(jubu)
    print(x)
    

    作用域补充

    global关键字###不推荐使用

    修改全局作用域中的变量。

    x = 1
    
    
    def f1():
        x = 2
    
        def f2():
            #         global x  # 修改全局
            x = 3
        f2()
    
    
    f1()
    print(x)
    

    nonlocal关键字

    x = 1
    
    
    def f1():
        x = 2
    
        def f2():
            #         nonlocal x
            x = 3
    
        f2()
        print(x)
    
    
    f1()
    
  • 相关阅读:
    MSCRM 2011 修改显示记录数
    医疗相关名词解析
    把图片中的文字转成文本
    自我介绍吧
    第三次作业
    第一次作业心得
    耿丹161第一次作业
    第二次作业
    C#常用函数表及Asp.net(C#)常用函数表
    C语言I博客作业02
  • 原文地址:https://www.cnblogs.com/ledgua/p/11329242.html
Copyright © 2020-2023  润新知