编程大神进阶之路:Python能力小贴士
假如你曾经编写过一个建设了某种类的大量实例的措施,那么你也许已经留意到,你的措施溘然必要大量的内存。那是由于 Python 行使字典来暗示类实例的属性,这使其速率很快,但内存行使服从却不是很高。凡是环境下,这并不是一个严峻的题目。可是,假如你的措施因此受到严峻的影响,不妨试一下「__slots__」:
当我们界说了「__slots__」属性时,Python 没有行使字典来暗示属性,而是行使小的牢靠巨细的数组,这大大镌汰了每个实例所需的内存。行使「__slots__」也有一些弱点:我们不能声明任何新的属性,我们只能行使「__slots__」上现有的属性。并且,带有「__slots__」的类不能行使多重担任。 限定「CPU」和内存行使量 假如不是想优化措施对内存或 CPU 的行使率,而是想直接将其限定为某个确定的数字,Python 也有一个对应的库可以做到:
我们可以看到,在上面的代码片断中,同时包括配置最大 CPU 运行时刻和最大内存行使限定的选项。在限定 CPU 的运行时刻时,我们起首得到该特定资源(RLIMIT_CPU)的软限定和硬限定,然后行使通过参数指定的秒数和先前检索到的硬限定来举办配置。最后,假如 CPU 的运行时刻高出了限定,我们将发出体系退出的信号。在内存行使方面,我们再次检索软限定和硬限定,并行使带「size」参数的「setrlimit」和先前检索到的硬限定来配置它。 节制可以/不行以导入什么 有些说话有很是明明的机制来导出成员(变量、要领、接口),譬喻在 Golang 中只有以大写字母开头的成员被导出。然而,在 Python 中,全部成员城市被导出(除非我们行使了「__all__」):
在上面这段代码中,我们知道只有「bar」函数被导出了。同样,我们可以让「__all__」为空,这样就不会导出任何对象,当从这个模块导入的时辰,会造成「AttributeError」。 实现较量运算符的简朴要领 为一个类实现全部的较量运算符(如 __lt__ , __le__ , __gt__ , __ge__)是很繁琐的。有更简朴的要领可以做到这一点吗?这种时辰,「functools.total_ordering」就是一个很好的协助:
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |