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]
    

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

    • 获取对象属性
    • 查看对象的类
    • 把对象当作参数
    • 对象当作返回值
  • 相关阅读:
    吉哥系列故事――恨7不成妻
    K
    F
    树状数组
    34.在排序数组中查找元素的第一个和最后一个位置--二分查找
    CSS选择器及其权重
    CSS布局 圣杯和双飞翼
    983. 最低票价 -- 动态规划
    合并k个排序链表 二分
    面试题 16.03. 交点
  • 原文地址:https://www.cnblogs.com/zyl007/p/15171731.html
Copyright © 2011-2022 走看看