python高手之路 下载,python高手之路 流畅的python
最近抽空翻出了几年前买的《Python高手之路》,大致看了一下,很多都没看懂。原因应该是我的实践经验不足,这一点至今仍是我无法克服的。这只能说是我知道的这么多了,但是我还是在我理解的部分发现了很多我以前没见过的东西。这位博主记录下来,以为我以后会看。
1.collections.defaultdict
Collections是Python中的一个高级模块,其中collections模块中有一种类型的默认字典(collections . default dict dictionary)。调用这个类时,初始化一个类对象,这个类对象生成的对象必须是可调用的,比如list、set等。如果没有指定值,则默认值为None。
可以看到defaultdict生成的对象赋值时给定的类对象自动生成的对象。
可以看出,对该类型的调用可以自动以调用的赋值为关键,返回的是默认生成的对象,我们可以对其进行操作。
2.内存视图
导入副本
x=str(范围(10000000))
@个人资料
定义乐趣():
w=x[1:-1]
view=memoryview(x)
受限=视图[1:-1]
if __name__==__main__ :
乐趣()
所以可以看出memoryview和C语言中的指针还是挺像的。该操作对字符串和字节类型的变量进行切片,而不会增加其他内存开销。
根据memoryview改变原对象中变量的值:
3.内存分析器
Memory_profiler是Python中的一个内存消耗显示模块,不属于标准库,需要额外安装。
该模块的用途是在待检测模块中的函数中添加@profile decorator,可以实现调用函数时内存消耗的检测。
4.Decorator functools.wraps
def is_admin(f):
def包装(*args,**kwargs):
if kwargs.get(用户名)!=admin :
引发异常(“不允许该用户获取食物!”)
返回f(*args,**kwargs)
返回包装
def foobar(用户名=某人):
做疯狂的事情
及格
打印foobar.func_doc
打印foobar。__姓名_ _
修改如下:
def is_admin(f):
def包装(*args,**kwargs):
if kwargs.get(用户名)!=admin :
引发异常(“不允许该用户获取食物!”)
返回f(*args,**kwargs)
返回包装
@is_admin
def foobar(用户名=某人):
做疯狂的事情
及格
打印foobar.func_doc
打印foobar。__姓名_ _
从上面可以看出,函数用装饰器打包后,函数原有的特征和信息都丢失了。
导入功能工具
def is_admin(f):
@functools.wraps(f)
def包装(*args,**kwargs):
if kwargs.get(用户名)!=admin :
引发异常(“不允许该用户获取食物!”)
返回f(*args,**kwargs)
返回包装
@is_admin
def foobar(用户名=某人):
做疯狂的事情
及格
打印foobar.func_doc
打印foobar。__name__使用functools.wraps decorator在包装函数中修饰返回函数,并将原函数的信息复制到该函数中。
大连理工大学软件学院编写
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。