美文网首页
python 限制属性

python 限制属性

作者: 北夜人 | 来源:发表于2015-09-05 20:38 被阅读224次

使用 slot 定义只允许出现的属性

要创建一个class对象,type()函数依次传入3个参数:
1、 class的名称;
2、 继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法;
3、 class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。

通过type()函数创建的类和直接写class是完全一样的,因为Python解释器遇到class定义时,仅仅是扫描一下class定义的语法,然后调用type()函数创建出class。

元类:
构造一个元类->类定义->类实例

# metaclass是创建类,所以必须从`type`类型派生:
class ListMetaclass(type):
    def __new__(cls, name, bases, attrs):
        attrs['add'] = lambda self, value: self.append(value)
        return type.__new__(cls, name, bases, attrs)

class MyList(list):
    __metaclass__ = ListMetaclass # 指示使用ListMetaclass来定制类

相关文章

  • Python限制属性

    __slots__

  • python 限制属性

    使用 slot 定义只允许出现的属性 要创建一个class对象,type()函数依次传入3个参数:1、 clas...

  • python---核心知识4之面向对象属性补充

    属性分为公有属性,受保护属性以及私有属性,在python里面并不是用修饰符来限制属性,而是通过命名规则来限制,下面...

  • Python>面向对象高级编程

    1. __slots__ Python里能够随便给实例(instance)增加属性,为了达到限制属性的目的,可以...

  • python __slots__ 限制属性

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

  • python类属性访问限制

  • python中的__slots__使用

    如果我们想要限制实例的属性,Python允许在定义class的时候,定义一个特殊的slots变量,来限制该clas...

  • 44-python中 __slots__

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

  • Python 面向对象编程

    class python 是动态语言,对于每一个实例,都可以直接给他们的属性赋值。 初始化实例属性 访问限制 类属...

  • python的__slots__ 、__call__

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

网友评论

      本文标题:python 限制属性

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