全国服务热线:400-035-8011

位置:武汉达内IT教育培训机构 > 学校动态 > 疫情后揭秘Python中的隐藏技巧(上)

疫情后揭秘Python中的隐藏技巧(上)

来源:武汉达内IT教育培训机构时间:2021/10/1 9:32:13

  疫情后揭秘Python中的隐藏技巧(上)
  许多文章都写了Python中的很多特性,如变量解包、偏函数、枚举可迭代性对象等,但是对于Python,还有很多话题要讨论,所以在本文中,小编将展示一些在其他文章中提及的Python技巧。让我们一探究竟吧!
  1.对输入字符串进行“消毒”
  对于用户输入的内容“消毒”,这个问题可以应用到你写的所有程序中。一般情况下,将字符转换成小写或大写就足够了,有时候您也可以使用正则表达式来完成这项工作,但更好的方法是:
  这个示例中,您可以看到空格字符“n”和“t”被单个空格替换了,而"r"已完全删除。"这个例子很简单,但我们可以更进一步,使用unicodedata库和它的combining()函数,以产生更大的重映表(remappingtable),并将字符串中的所有重音删除。
  2.对迭代器切片
  当您试图直接对迭代器进行切片时,您将得到TypeError,它提示您该对象是不可取下标(not subscriptable),但有一个简单的解决方法:
  有了itertools.islice,就可以创建一个islice对象,它是一个迭代器,用于生成我们需要的东西。不过,但需提示一点,因为它会消耗掉切片之前以及切片对象islice中的所有元素。
  3.跳过可迭对象的开始
  有时,您必须处理一些文件,这些文件以可变数量的不必要行(如注释)开始。itertools还提供了一些简单的解决方法:

  此代码将只打印初始注释部分之后的内容。这个方法非常有用,如果我们只想丢弃迭代器的开始部分(在这个例子中是注释),而不想知道有多少内容。

疫情后揭秘Python中的隐藏技巧(上)

  4.仅支持关键字参数(kwargs)的函数
  在要求函数提供(强制)更清晰的参数时,创建一个只支持关键字参数的函数可能非常有用:
  正如您可以看到的,可以将单个*参数放在关键字参数之前,以方便地解决该问题。在将位置参数置于*参数之前,很明显,也可以放位置参数。
  5.创建一个对象来支持with语句
  大家都知道如何使用with语句,比如打开文件或获得锁,但我们自己能实现吗?可以。我们可以使用__enter__和__exit__方法实现以下上下文管理器协议。
  6.使用__slots__可以节省内存
  假如您曾经写过一个程序,它创建了大量的类的实例,那么您可能已经注意到您的程序突然需要很多内存。这是因为Python使用字典来表示类实例的属性,这样可以加快它的速度,但是内存效率不高。一般情况下,这并不成问题,但如果程序遇到问题,您可以尝试使用__slots__。
  当我们定义__slots__属性时,Python使用一个大小固定的小型数组,而非一个字典,这会大大减少每个实例所需的内存。对于__slots__,使用它还有一些缺点——我们不能声明任何新属性,只能使用在__slots__中的属性。同样,带有__slots__的类不能使用多重继承。
  7.限制CPU和内存的使用量
  如果不是想优化程序内存或CPU使用率,而是要把它直接限制在一个固定的数字上,那么Python也有一个库可以做到。
  可以设置CPU较大运行时间和内存使用量的上限。就CPU限制而言,我们首先要获得这个特定资源(RLIMIT_CPU)的软限制和硬限制,然后对它进行设置,方法是使用参数指定的秒数,以及以前获得的硬限制。较终,如果超出CPU时间,我们将注册信号以使系统退出。对于内存,我们再次获得软和硬限制,并使用带有size参数的setrlimit和获取的硬限制对其进行设置。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3851/news/418454/违者必究! 以上就是武汉达内IT教育培训机构 小编为您整理 疫情后揭秘Python中的隐藏技巧(上)的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011