zoukankan      html  css  js  c++  java
  • 第二十五篇 函数对象

    第二十五篇 函数对象

    一、对函数的深层次认识

    • 1.python中一切皆对象,函数是第一类对象

    • 2.由于函数也是对象,所以函数可以被当作数据处理

    def f():
        pass
    
    # 函数名就可以看作是一种数据类型的变量
    print(f)
    print(id(f))
    print(type(f))
    '''
    <function f at 0x00000181D80A2BF8>
    1657186954232
    <class 'function'>
    '''
    
    # 函数名加() 就是返回值,所有的属性都根据函数的返回值而定
    print(f())
    print(id(f()))
    print(type(f()))
    '''
    None
    1408672976
    <class 'NoneType'>
    '''
    
    • 函数对象可以看作就是函数名,当调用它时,必须在它后面加小括号

    二、函数对象的四大功能

    1.引用

    • 类似于变量,函数对象可以当作变量值的引用来处理
    def f():
    	pass
    
    x = f
    print(x)
    # <function f at 0x0000024E66002BF8>
    

    2.当作参数传给函数

    • 既然函数对象类似于变量,那么它也可以当作接收数据的变量名来进行传值
    def f():
        print('通过x()来实现f函数的调用')
    
    def f2(x):
        x()
        
    f2(f)
    # 通过x()来实现f函数的调用
    

    3.当作函数的返回值

    • 和将函数对象作为参数传值一样,函数对象可以作为函数的返回值
    def f(x):
        return x
    def f2():
        print('我是f2')
    a = f(f2)
    a()  # 我是f2
    

    4.当作容器类型的元素

    • 也可以将函数对象看作是一个值,因此它可以作为一个元素存储在容器类型中
    def f():
        print('你好')
    
    lis = [f]
    lis[0]()  # 你好
    

    三、函数对象的应用

    def pay():
        print('支付成功')
        
    def withdraw():
        print('提现成功')
        
    func_dic = {'0': par, '1': withdraw}
    
    while True:
        msg = """
    		'1': 支付,
            '2': 提现,
            '3': 退出,
    		  """
        print(msg)
        choice = input('选择功能:').strip()
        if choice == '3':
            break
       	elif choice in func_dic:
            func_dic[choice]()
    
  • 相关阅读:
    python解决线性规划问题
    python解决多变量最优化问题
    python处理单变量优化
    java枚举类常用方法
    java实现十大排序算法
    python解方程
    python科学计算包
    python做微积分
    php定界符<<<EOF讲解
    一键安装LNMP/LAMP
  • 原文地址:https://www.cnblogs.com/itboy-newking/p/10953491.html
Copyright © 2011-2022 走看看