猫史档案馆


【雪地游戏工作室】教程贴2 __slots__ 你们没人看,就让我默默发好了

用户:TimeLinkForeverTimeLinkForever查看:0 回复:0 评论:0 创建时间:2020-01-18T21:20:09


哈哈,欢迎来到风之杖系列2

上一次的贴全然没人看emotion_编程猫_冷漠我只有不等你们直接发了

上一次链接: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

 


回复

上一页1 页 / 共 0下一页