欢迎访问宙启技术站
智能推送

Python中内建对象(object())的核心功能解析

发布时间:2023-12-26 22:15:39

Python中内建对象(object())是所有类的基类,它定义了所有对象共有的属性和方法。在Python中,几乎一切都是对象,包括数字、字符串、列表等等,它们都是从object类继承而来。

1. 属性和方法继承:

对象可以继承自object类,从而获得object类中定义的属性和方法。例如,对象可以使用__class__属性获取其类名,也可以通过__str__()方法打印对象的字符串表示。

    class MyClass(object):
        pass

    obj = MyClass()
    print(obj.__class__)  # <class '__main__.MyClass'>
    print(obj.__str__())  # <__main__.MyClass object at 0x7f77e4bf03c8>
    

2. 对象的身份(identity):

每个对象在内存中都有一个 的身份标识,通过id()函数可以获取对象的身份。这个身份在对象的生命周期中是固定不变的。

    obj1 = object()
    obj2 = object()
    print(id(obj1))  # 140386735178192
    print(id(obj2))  # 140386735178208
    

3. 对象的比较:

对象可以使用==!=进行比较,它们会比较对象的值是否相等。当对象的身份相同(即指向同一个内存地址)时,使用is关键字进行比较会返回True

    obj1 = object()
    obj2 = object()
    obj3 = obj1

    print(obj1 == obj2)  # False
    print(obj1 != obj2)  # True
    print(obj1 is obj3)  # True
    

4. 对象封装和解封装:

对象可以使用封装和解封装的方式进行数据的存取。

    class MyClass(object):
        def __init__(self, value):
            self.value = value

    obj = MyClass(10)
    print(obj.value)  # 10
    

5. 对象的垃圾回收:

对象有一个计数器,当没有引用指向该对象时,计数器的值会减1。当计数器的值为0时,对象就会被自动回收。

    obj1 = object()
    obj2 = obj1

    del obj1
    print(obj2)  # <object object at 0x7f77e4bf03d8>

    del obj2
    print(obj2)  # NameError: name 'obj2' is not defined
    

6. 定义自定义对象:

可以定义自己的类继承自object类,以实现自定义对象的功能。

    class Person(object):
        def __init__(self, name):
            self.name = name

        def say_hello(self):
            print(f"Hello, {self.name}!")

    p = Person("Alice")
    p.say_hello()  # Hello, Alice!
    

总结:

Python中内建对象(object())是所有类的基类,它提供了对象的一些核心功能,包括属性和方法的继承、身份的获取、对象的比较、封装和解封装、垃圾回收等。通过自定义类继承object类,可以创建自己的对象并实现自定义的功能。