python 学习笔记3-一等函数

1.一等函数
把函数作为对象
(1) 可以把函数赋给变量 然后可以通过调用变量来调用函数
(2) 可以把函数作为参数传递给函数 比如map的第一个参数就是函数
(3) 高阶函数 可以接收函数为参数 把参数作为结果返回
例 sorted() 可以key = len 通过长短来排序

list(map(fact, range(6)))
[fact(n) for n in range(6)]
list(map(factorial, filter(lambda n: n % 2, range(6))))
[factorial for n in range(6) if n % 2]

3.匿名函数
lambda x: x**2

4.可调用对象
调用运算符 ----> ()
除了函数 其他对象也可以使用 比如用内置的callable()函数
(1) 用户定义的函数
(2) 内置函数
(3) 内置方法
(4) 方法
(5) 类
(6) 类的实例 (如果类定义了__call__方法)
(7) 生成器函数

5.在类中实现__call__方法后 可以在创建实例后 像调用函数一样调用实例

class Bingo:
def init(self, items):
self._items = list(items)
random.shuffle(self._items)

def pick(self):
	try:
		return self._items.pop()
	except IndexError:
		raise LookupError('pick from empty BingoCage')
	
def __call__(self):
	return self.pick()

bingo = Bingo(range(3))

bingo()
0

6.函数内省
函数对象有很多属性是其他对象没有的
可以通过dir来查看

7.调用函数时 使用*或**来展开可迭代对象

  • 表示顺序上 任意个参数都会被捕获 存入一个元组中
    ** 表示没有明确指定名称的关键字参数会被捕获 存入一个字典

(1)普通情况的参数 叫 位置参数或者定位参数
(2)默认参数为 def func(name = ‘Tom’)
(3)可变参数 为* **
(4)关键字参数 在函数调用时 指定参数 func(name = 'Tom)
(5)def f(a, , b) 表示后面为关键字参数
f(1, b = 2)

9.可以通过内置属性来获得参数的信息
func.defaults 参数的默认值
func.code
func.code.co_varnames 获得函数的所有局部变量
func.code.co_argcount 参数的个数
(2) 使用inspect 模块
sig = inspect.signature(函数)
sig 包含参数 及其默认值
sig.__annotation 可以从函数签名中提取注解

  1. 支持函数式编程的包
    operator 和 functools
    例 from functools import reduce
    from operator import mul

  2. itemgetter 和 attrgetter
    例 itemgetter(1) -----> lambda fields: fields[1]
    返回索引为1的值
    例 itemgetter(1, 0)
    返回索引为1的值和索引为0的值 构成的元组
    例 attrgetter(参数) 参数可以深入嵌套结构
    attrgetter(‘coord.lat’) P134

12.methodcaller 在对象上调用参数指定的方法
和之前的两个一样都可以创建函数
upcase = methodcaller(‘upper’)

upcase(‘You are so brilliant.’)
‘YOU ARE SO BRILLIANT.’
hiphenate = methodcaller(‘replace’, ’ ', ‘-’)

hiphenate(‘You are so brilliant.’)
‘You-are-so-brilliant.’

13.使用functools.partial 冻结参数
参数 第一个为可调用对象 后面跟着任意个要绑定的定位参数和关键字参数
作用为基于一个函数创建一个新的可调用对象,把部分参数固定可以把接收多个参数的函数改编为需要回调的api

from operator import mul
from functools import partial
triple = partial(mul, 3)

triple(7)
21

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python学习笔记》是由皮大庆编写的一本关于Python语言学习的教材。在这本书中,作者详细介绍了Python语言的基础知识、语法规则以及常用的编程技巧。 首先,作者简要介绍了Python语言的特点和优势。他提到,Python是一种易于学习和使用的编程语言,受到了广大程序员的喜爱。Python具有简洁、清晰的语法结构,使得代码可读性极高,同时也提供了丰富的库和模块,能够快速实现各种功能。 接着,作者详细讲解了Python的基本语法。他从变量、数据类型、运算符等基础知识开始,逐步介绍了条件语句、循环控制、函数、模块等高级概念。同时,作者通过大量的示例代码和实践案例,帮助读者加深对Python编程的理解和应用。 在书中,作者还特别强调了编写规范和良好的编程习惯。他从命名规范、注释风格、代码缩进等方面指导读者如何写出清晰、可读性强的Python代码。作者认为,良好的编程习惯对于提高代码质量和提高工作效率非常重要。 此外,作者还介绍了Python的常用库和模块。他提到了一些常用的库,如Numpy、Pandas、Matplotlib等。这些库在数据处理、科学计算、可视化等领域有广泛的应用,帮助读者更好地解决实际问题。 总的来说,《Python学习笔记》是一本非常实用和全面的Python学习教材。通过学习这本书,读者可以系统地学习和掌握Python编程的基础知识和高级应用技巧,为以后的编程学习和工作打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值