python常用内建属性大全

简介: 在python中创建一个类,它不仅有我们自定义的属性和方法,还有与生俱来的一些属性和方法,我们叫它内建属性。下面是类常用内建属性列表。常用专有属性说明触发方式__init__构造初始化函数创建实例后,赋值时使用,在__new__后__new__生成实例所需属性创建实例时__class__实例所在的类实例.

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


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


常用专有属性 说明 触发方式
__init__ 构造初始化函数 创建实例后,赋值时使用,在__new__
__new__ 生成实例所需属性 创建实例时
__class__ 实例所在的类 实例.__class__
__str__ 实例字符串表示,可读性 print(类实例),如没实现,使用repr结果
__repr__ 实例字符串表示,准确性 类实例 回车 或者 print(repr(类实例))
__del__ 析构 del删除实例
__dict__ 实例自定义属性 vars(实例.__dict__)
__doc__ 类文档,子类不继承 help(类或实例)
__getattribute__ 属性访问拦截器 访问实例属性时
__bases__ 类的所有父类构成元素 类名.__bases__


__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)


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


相关文章
|
1月前
|
物联网 Python
请问:如何使用python对物联网平台上设备的属性进行更改?
为验证项目可行性,本实验利用阿里云物联网平台创建设备并定义电流、电压两个整型属性。通过Python与平台交互,实现对设备属性的控制,确保后续项目的顺利进行。此过程涵盖设备连接、数据传输及属性调控等功能。
|
2月前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
43 2
|
4月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
45 1
|
5月前
|
存储 API 索引
让 Python 的属性查找具有 C 一级的性能
让 Python 的属性查找具有 C 一级的性能
28 0
|
5月前
|
Python
Python中类属性与实例属性的区别
了解这些区别对于编写高效、易维护的Python代码至关重要。正确地使用类属性和实例属性不仅能帮助我们更好地组织代码,还能提高代码运行的效率。
62 0
|
5月前
|
Python
Python类中属性和方法区分3-8
Python类中属性和方法区分3-8
|
6月前
|
程序员 开发者 Python
Python动态属性与反射机制方式
通过反射和动态属性,Python程序员获得了巨大的权能,能在运行时访问、修改或为对象新增属性和方法,显著提高编程的智能化和适应性。内置的反射机制可能使开发者跨越编写代码时的限制,通过名称访问对象的特性、方法以及其他成员,为创建一个具有高度配置性、扩展性强大的应用程序打下基础。此外,利用getattr和setattr函数来获取和设定对象的属性,或是利用hasattr确认其是否存在某属性,甚至可以通过名字来动态地执行对象的函数。 总之,反射和动态属性对于Python的程序开发而言是重要的工具,它们不仅提供了编写效率高且灵活的代码的能力,还为构建可高度定制和扩展的应用程序提供了可能。对于熟练掌握这些
|
7月前
|
API Python
python属性错误(AttributeError)
【7月更文挑战第13天】
316 10
|
7月前
|
程序员 开发者 Python
Python动态属性与反射机制方式
通过反射和动态属性,Python程序员获得了巨大的权能,能在运行时访问、修改或为对象新增属性和方法,显著提高编程的智能化和适应性。内置的反射机制可能使开发者跨越编写代码时的限制,通过名称访问对象的特性、方法以及其他成员,为创建一个具有高度配置性、扩展性强大的应用程序打下基础。此外,利用getattr和setattr函数来获取和设定对象的属性,或是利用hasattr确认其是否存在某属性,甚至可以通过名字来动态地执行对象的函数。 总之,反射和动态属性对于Python的程序开发而言是重要的工具,它们不仅提供了编写效率高且灵活的代码的能力,还为构建可高度定制和扩展的应用程序提供了可能。对于熟练掌握这些
|
8月前
|
存储 程序员 Python
Python类属性与实例属性详解
Python 中区分类属性和实例属性的设计是为了满足不同的需求和使用场景。这种区分使得代码更加灵活、清晰,并且能够提供更好的封装性和可维护性。类属性用于表示与整个类相关的数据,而实例属性则用于表示每个实例的特定信息。这样,我们可以将关注点分离开来,使得代码更易于理解、维护和扩展。在实际应用中,我们可以根据具体的情况,选择适当的属性类型来组织和管理代码。
89 1

热门文章

最新文章