__slots__(slots of vegas)
Python __slots__类如何使用cpickle进行序列化和反序列化
?class?ws(object):
...???__slots__?=?'a',?'b'
...???def?__init__(self,?a=23,?b=45):?self.a,?self.b?=?a,?b
...?
?x?=?ws()
?import?pickle
?pickle.dumps(x,?-1)
'\x80\x02c__main__\nws\nq\x00)\x81q\x01N}q\x02(U\x01aq\x03K\x17U\x01bq\x04K-u\x86q\x05b.'
?pickle.dumps(x)
Traceback?(most?recent?call?last):
????[[snip]]
??File?"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/copy_reg.py",?line?77,?in?_reduce_ex
????raise?TypeError("a?class?that?defines?__slots__?without?"
TypeError:?a?class?that?defines?__slots__?without?defining?__getstate__?cannot?be?pickled
pickle.dumps的时候使用-1协议。
如果解决了您的问题请采纳!
如果未解决请继续追问
slots关键字可以省略吗
不可以省略。
slots关键字的作用如下:
1、限制用户的使用。由于Python是动态语言,所以类的成员甚至可以在类创建好了之后动态创建。这在静态语言当中是绝对不行的,我们只能调用类当中已有的属性,是不能或者很难添加新属性的。
2、节省内存。使用dict来维护实例,会消耗大量的内存,额外存储了许多数据,而使用__slots__之后,Python内部将不再为实例创建一个字典来维护,而是会使用一个固定大小的数组,这样就节省了大量的空间。这个节省可不是一点半点,一般可以节省一半以上。也就是说牺牲了一定的灵活性,保证了性能。
slot怎么读
slot的发音:
美?[slɑt]? 英?[sl?t]
slot的意思:
n.机会;(投放或插入东西的)窄缝
v.投放;插入;(被)塞进;(被)装入
复数:slots??现在分词:slotting??过去式:slotted
例句:
1.A?year?later?I?acquired?a?programmable?calculator?with a tiny engine?that?pulled magnetic?memory?cards?through its?slot.
1年后,我买了一个可以编程的计算器,可以插进存储卡。
2.Simply?cut?a?slot?in?the?lid?to?put?change?in,?and?let?your?child?decorate?the outside?as?he or she chooses.
只要在盖子上剪开一个可以放零钱的小口,再让你的孩子随心装饰一下罐子就可以了。
3.Due?to?the?constraint that?only?one?tag?can?be?identified?at?a?time?slot?in?the system,?many?relevant?researches?have?been?proposed.
此技术受限于只能在同一时间内辨识出一个标签,因此许多相关研究被提出。
4.Uniqueness?of?tokens?also?results?in an?additional?failure?mode?when?attempting?to?connect?a?slot?using?a?token?that?has already?been?used.
标记的唯一性也导致了额外的失败模式,如试图用一个已经被使用的标记连接一个插槽。
slots是什么意思及反义词
slots 英[s'l?ts] 美[s'l?ts]
n. (机器或工具上的) 狭缝( slot的名词复数 ); 非正(在表册、系统等中所占的)位置; (投放或插入东西的) 窄缝; (名单、日程安排或广播节目表中的) 位置;
v. 把…放入狭长开口中( slot的第三人称单数 ); 把…纳入其中;
[例句]Insert guide pins and into the holding slots and.
将导向销和插入固定槽和中。
[其他] 原型: slot