
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
在互联网的快速发展的今天,衍生出了很多与互联网有关的职业,其中程序员是很大的一部分,程序员是网络架构的主要工作人员,在社会的需求与高工资的刺激之下,很多人改行做程序员,而程序员主要做什么工作呢?当然是敲代码啦,而代码也就是不同的程序语言,利用这些语言来实现线上或线下的需求,例如java、C、python、php、web、ajax...等等,其中java在语言排行榜位于首列,是现如今应用范围最广泛的语言,而且也有很多语言也是通过java所衍生出来的,今天烟台电脑培训小编为大家带来,python编程技巧?希望大家喜欢!
使用 __slots__ 来减少内存开支
你是否注意到你的 Python 应用占用许多资源特别是内存?有一个技巧是使用 __slots__ 类变量来在一定程度上减少内存开支。
import sys
classFileSystem(object):
def __init__(self,files,folders,devices):
self.files= files
self.folders= folders
self.devices= devices
print(sys.getsizeof(FileSystem))
classFileSystem1(object):
__slots__= [‘files’,’folders’,’devices’]
def __init__(self,files,folders,devices):
self.files= files
self.folders= folders
self.devices= devices
print(sys.getsizeof(FileSystem1))
#In Python 3.5
#1-> 1016
#2-> 888
很明显,你可以从结果中看到确实有内存使用上的节省,但是你只应该在一个类的内存开销不必要得大时才使用 __slots__。只在对应用进行性能分析后才使用它,不然地话,你只是使得代码难以改变而没有真正的益处。
【译者注:在我的 win10 python2.7 中上面的结果是:
#In Python 2.7 win10
#1-> 896
#2-> 1016
所以,这种比较方式是不那么让人信服的,使用 __slots__ 主要是用以限定对象的属性信息,另外,当生成对象很多时花销可能会小一些,具体可以参见 python 官方文档:
The slots declaration takes a sequence of instance variables and reserves just enough space in each instance to hold a value for each variable. Space is saved because dict is not created for each instance. 】