python高手之路 下载,python高手之路 流畅的python

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: