python 学习笔记三 (函数)
1、把函数视为对象
def factorial(n):
'''return n!'''
return 1 if n < 2 else n*factorial(n-1)
print(factorial.__doc__)
x = factorial
print(x)
print(factorial)
print(x(10))
2、高阶函数:
接受函数为参数,或者把函数作为结果返回的函数是高阶函数。
常见的高阶函数: map(),sorted(),filter()
3、匿名函数:
什么时候使用匿名函数,假如这个方法使用次数就一次,就避免用def进行一个方法的定义,直接用lambda 进行定义
fruits=['apple','strawberry','banana','cherry']
y=sorted(fruits, key=lambda word: word[::-1])
针对 lambda word :word[::-1] 其实正常来说需要写一个方法
def rever(str):
return str[::-1]
y=sorted(fruits, key=rever)
4、可调用对象
使用callable()进行判断是否可以调用
5、用户定义的可调用类型
import random
class BingoCage:
def __init__(self,items):
self._items = list(items) # 这里的写法很重要,避免对原来对list产生影响
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()
定义了__call__方法后,BingoCage的对象就可以像对象一样的调用
bingcage=BingoCage([1,2,3,4])
bingcage() 就会去调用__call__方法
6、函数的内省
使用dir可以查看对象包含的各个函数
7、在函数编程里,有几个包很重要: operator 和 functools 包,对于支持函数式编程上有很重要的作用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY