用户:
TimeLinkForever查看:0 回复:0 评论:0 创建时间:2020-01-18T21:20:09
哈哈,欢迎来到风之杖系列2
上一次的贴全然没人看
我只有不等你们直接发了
上一次链接:https://shequ.codemao.cn/community/221719
好这次咱介绍个class_method:__slots__!
__slost__有什么用呢?
__slots__控制了类可以有的属性(property,attribute)
它的运行方式是什么呢?
来看看
#写出来的代码:
class Codemao:
__slots__=["age","size"]
#上面的代码等价于:
class Codemao:
if (新加的属性 not in ["age","size"]):
#报错 可以想这里有个raise
那我们现在已经知道了__slots__的运行方法。之后,我们像上一次一样探讨它的好处。
1.简化程序
其实你看上面的程序就知道,它替换了2行代码,且弥补了难获取别人对程序新加的属性的问题。
2.保证安全
保证他人在没有细读你的程序时就增加属性后用错误拦截他。
接下来是总结:
#__slots__用法:
class Codemao:
__slots__=[所有属性的名字(注意是本文格式)]
#__slots__在简化代码的同时保证了代码的安全。
小测试:
这是你创建的Python类。Hackman把里面搞得惨不忍睹(好吧并没有)请使用__slot__让Hackman的代码发生报错。
class Python:
def __init__(self,version):
self.version=version
#Hackman's code!
bugs=132174097709
glitchy=True