一、助教123
最近周围疫情又开始扩散了,工作也比较忙。不太开心呐,比较烦。
函数缓存
分享之前在对代码优化中用到的一个东西,名字叫做函数缓存。这个东西其实就是一个闭包,当时主要是遇到很多重复计算浪费时间。原理很简单其实就是记录每一次输入和输出,写在一个字典中。当计算的时候如果计算过就直接字典索引。若是没有计算过则会计算并添加到字典中。
class Chace:
def __init__(self, func):
self.func = func
self.dict_ = {}
def __call__(self, *args):
if not args in self.memo:
self.dict_[args] = self.func(*args)
return self.dict_[args]
二、学习456
(一)什么是函数
1. def
关键字:def
- 函数通过关键词def来创建函数
- def紧随其后的是空格,空格过后便是函数的名字func_name以及一个括号()和冒号:
def func_name():
pass
2. 参数
函数是定义的用来解决某一类问题或方法,就像数学中 y = f(x)。我们希望同个这个函数我们可以输入我们想要解决的问题的内容,给出我们想要的结果。
def sum(a, b):
print(a+b)
此处我们定义了一个求和函数,我需要传入两个数字进入函数,函数会打印出和。a和b被称为形参,我们在使用时传入的具体数字被称为实参。
3. return
关键字为:return
这么说其实不太准确,因为传出数据的手段不止return,但现在我们可以只管使用return就可以了。当函数运行到return时就会自动退出函数并返回我们需要返回的内容,
def sum(a, b):
s = a + b
return s
这里我们依旧是定义了一个求和函数,但是不同的是刚刚我们只是打印了两个数之和。并没有将他们的和给保留下来,实际中我们是需要他们的和来继续后续的计算,因此return关键词就可以将他们的和给保存下来。
当函数并没写return时,此时若是将函数结果赋值给其他变量,此时函数会默认返回None值。
其实还有很多
函数可以聊的东西太多了,例如闭包,递归,全局变量局部变量等等。很多东西都不是单独存在的,看似没有关联的东西其实在细节上都有巧妙地结合。