zoukankan      html  css  js  c++  java
  • 把函数视为对象

    在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满
    足下述条件的程序实体:

    • 在运行时创建
    • 能赋值给变量或数据结构中的元素
    • 能作为参数传给函数
    • 能作为函数的返回结果

    对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

    看看下面两个示例:

    1. 创建一个函数,并读取它的__doc__属性,再检查它的类型.
    2. 通过别的名称实用函数,再把函数作为参数传递.
    
    # 案例1
    In [20]: def factorial(n):
        ...:     """return n!"""
        ...:     return 1 if n<2 else n*factorial(n-1)
        ...:
    
    In [21]: factorial(12)
    Out[21]: 479001600
    # 获取对象属性
    In [22]: factorial.__doc__
    Out[22]: 'return n!'
    # function类
    In [23]: type(factorial)
    Out[23]: function
    
    # 案例2
    In [24]: fact = factorial
    
    In [25]: fact
    Out[25]: <function __main__.factorial(n)>
    
    In [26]: fact(5)
    Out[26]: 120
    
    In [27]: map(factorial, range(10))
    Out[27]: <map at 0x7f9c08954e80>
    
    In [28]: list(map(factorial, range(10)))
    Out[28]: [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
    

    上面两个案例,表现出对象的行为.

    • 获取对象属性
    • 查看对象的类
    • 把对象当作参数
    • 对象当作返回值
  • 相关阅读:
    第03组 团队Git现场编程实战
    团队Git现场编程实战
    第二次结对编程作业
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    第四组 团队Git现场编程实战
    第二次结对编程作业
  • 原文地址:https://www.cnblogs.com/zyl007/p/15171731.html
Copyright © 2011-2022 走看看