ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一等函数

2021-12-16 12:31:22  阅读:138  来源: 互联网

标签:__ map 函数 factorial 一等 fact


一等函数

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

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

在Python中,整数、字符串和字典都是一等对象

把函数视作对象

Python函数是对象

# 创建并测试一个函数,然后读取它的__doc__属性,再检查它的类型
def factorial(n):  # 这是一个控制台会话,因此是在运行时创建一个函数
    '''return n!'''
    return 1 if n < 2 else n * factorial(n - 1)


factorial(42)
1405006117752879898543142606244511569936384000000000
factorial.__doc__  # __doc__是函数对象众多属性中的一个
'return n!'
type(factorial)  # factorial是function类的实例
function

也可以把factorial函数赋值给变量fact,然后通过函数名调用。还能把它作为参数传递给map函数。map函数返回一个可迭代对象,里面的元素是把第一个参数(一个函数)应用到第二个参数(一个可迭代对象,这里是range(11))中各个元素上得到的结果

fact = factorial
fact
<function __main__.factorial(n)>
fact(5)
120
map(fact, range(11))
<map at 0x1fe0f9adb80>
list(map(fact, range(11)))
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]

有了一等函数,就可以使用函数式风格编程。函数式编程的特点之一是使用高阶函数。

标签:__,map,函数,factorial,一等,fact
来源: https://www.cnblogs.com/Reion/p/15697323.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有