美文网首页
python学习笔记-tip39(限制动态指定属性和方法:__s

python学习笔记-tip39(限制动态指定属性和方法:__s

作者: 黑键手记 | 来源:发表于2018-09-26 16:04 被阅读9次

前言

我们知道,python是动态语言,可以在定义好类之后再动态的给其设置方法或者属性,如下方例子所示:


注意上面用到了

MethodType(方法,类对象)这个函数用来给某个对象指定方法

但是正因为动态语言的这个特点,所以会有编程风险,所以我们需要限定住某些固定属性

怎么限定?
__slots__函数
我们来看下用法


使用方法很简单
    __slots__=('name','age')

就能限制住类中的属性了

需要注意的是,用__slots__修饰的属性只对当前的类实例有作用,对于子类是没有约束限制的

如图


如果想让子类也约束的话,也同时使用__slots__去约束

相关文章

  • python学习笔记-tip39(限制动态指定属性和方法:__s

    前言 我们知道,python是动态语言,可以在定义好类之后再动态的给其设置方法或者属性,如下方例子所示: 注意上面...

  • python __slots__ 限制属性

    Python 是动态语言,允许我们动态的增加属性和方法 同样也有办法限制属性的动态绑定 如上所示可以规定 clas...

  • python 面向对象编程之访问限制

    python学习笔记,特做记录,分享给大家,希望对大家有所帮助。 访问限制 在Class内部,可以有属性和方法,而...

  • python 面向对象编程之实例属性和类属性

    python学习笔记,特做记录,分享给大家,希望对大家有所帮助。 实例属性和类属性 由于Python是动态语言,根...

  • 使用__slots__实现动态绑定

    Python作为动态语言,可以实现动态绑定属性和实例方法等。 动态绑定属性 动态绑定实例方法 给一个实例绑定的方法...

  • python对象绑定属相方法、生成器

    1、python动态添加属性方法的方法, import types types.MethodType(属性方法,i...

  • Python动态语言的体现

    Python作为一门动态语言 ,他的动态性体现在可以动态给对象添加属性 和方法。 1,通过TypeMethod方法...

  • OC运行时

    我个人对OC的理解就是:动态获取OC Class的属性和方法,从而动态改变Class方法和属性。之前学习Java的...

  • 44-python中 __slots__

    由于Python是动态语言,任何实例在运行期都可以动态地添加属性。 如果要限制添加的属性,例如,Student类只...

  • python的__slots__ 、__call__

    由于Python是动态语言,任何实例在运行期都可以动态地添加属性。如果要限制添加的属性,例如,Student类只允...

网友评论

      本文标题:python学习笔记-tip39(限制动态指定属性和方法:__s

      本文链接:https://www.haomeiwen.com/subject/qxodoftx.html