美文网首页
python常用内建属性大全

python常用内建属性大全

作者: Python之战 | 来源:发表于2019-03-03 22:45 被阅读0次

    在python中创建一个类,它不仅有我们自定义的属性和方法,还有与生俱来的一些属性和方法,我们叫它内建属性。

    下面是类常用内建属性列表。

    image

    init

    负责一个类实例化中的初始化操作

    new

    在创建实例化时发生作用,在init之前执行,主要作用是创建实例对象,典型的应用是在单利模式中.

    class Singleton(object):
    
        def __new__(cls, *args, **kw):
            if not hasattr(cls, '_instance'):
                org = super(Singleton, cls)
                cls._instance = org.__new__(cls, *args, **kw)
            return cls._instance
    
    

    class

    是示例对象的属性,该属性指向了实例化该对象的类,代表实例化该对象的抽象类,可以通过它调用类的方法和类属性。

    class Test:
        name = "抽象类"
        def __init__(self):
            self.name = '实例名字'
        def test(self):
            print('实例方法')
    
    test = Test()
    test.__class__.name
    Out[21]: '抽象类'
    test.__class__.test(1)
    实例方法
    
    

    str

    实例化对象的字符串表示(代表名字),面向用户,通过print输出实例化类的结果

    class Test:
    
        def __str__(self):
            return '这是实例化类的说明书'
    
    test = Test()
    print(test)
    这是实例化类的说明书
    
    

    repr

    实例化对象的字符串表示,面向开发者的
    
    class Test:
    
        def __str__(self):
    
            return '用户可见'
    
        def __repr__(self):
    
            return '开发者可见'
    
    test = Test()
    
    print(test)
    
    用户可见
    
    test
    
    Out[30]: 开发者可见
    
    

    在控制台输出实例化对象时的显示信息

    del

    当一个实例化对象被删除时,该方法将调用,该方法是执行删除对象的操作。

    class Test:
        def __del__(self):
            print('我被删除了】')
    
    test = Test()
    del test
    我被删了
    
    

    dict

    类或实例化对象的属性字典

    class Test:
        name = "抽象类"
        def __init__(self):
            self.name = '实例名字'
        def test(self):
            print('实例方法')        
    
    test = Test()
    test.__dict__
    Out[51]: {'name': '实例名字'}
    Test.__dict__
    Out[52]: 
    mappingproxy({'__dict__': <attribute '__dict__' of 'Test' objects>,
                  '__doc__': None,
                  '__init__': <function __main__.Test.__init__>,
                  '__module__': '__main__',
                  '__weakref__': <attribute '__weakref__' of 'Test' objects>,
                  'name': '抽象类',
                  'test': <function __main__.Test.test>})
    
    

    doc

    是对函数/方法/模块所实现功能的简单描述,但当指向具体对象时,会显示此

    对象.

    class Test:
        """我是说明书"""  
    
    test = Test()
    test.__doc__
    Out[60]: '我是说明书'
    
    

    getattribute

    属性拦截器,内部拦截修改某个属性的值

    class Test:
        def __init__(self):
            self.name = '正常名字'
        def __getattribute__(self, name):
            return '拦截后名字'
    
    test = Test()
    test.name
    Out[63]: '拦截后名字'
    
    

    bases

    查询类的父类元素

    class A:
        pass
    class B:
        pass
    class C(A, B):
        pass
    C.__bases__
    Out[94]: (__main__.A, __main__.B)
    
    

    内建属性一般是不建议修改,如果要修改那么尽量将整套的内建属性复写,否则容易出现错误。

    image

    相关文章

      网友评论

          本文标题:python常用内建属性大全

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