本系列将会陆续整理分享一些的Python内置函数。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_built-in_functions
object()
object
是Python中所有其他类的终极基类。这意味着,无论创建什么类,它最终都会继承自object
。例如,在下面的示例中,在类定义中尽管没有明确提到object
,MyClass
仍然是object
的子类,可以使用i
ss
ubclass()
函数来验证这一点:class MyClass:
pass
print(issubclass(MyClass, object))
# 输出:True
__repr__()
、__str__()
、__hash__()
和__eq__()
等。这些方法定义了对象的基本行为,比如如何表示对象、如何比较对象等。例如,当你打印一个自定义类的实例时,如果没有定义__str__()
方法,会调用从object
继承的默认__str__()
方法,输出类似于<__main__.ClassName object at ...>
的信息。下面是一些使用 object() 函数的示例:
-
示例 1:基本使用
在下面的示例中,obj是通过object()创建的object类实例。打印obj会调用object类的__repr__()方法,输出对象的内存地址等信息。使用type(obj)可以确认它的类型是object。而dir(obj)列出了object 类实例的所有属性和方法,包括一些魔术方法,这些方法是Python中对象行为的基础。
# 创建一个object对象
obj = object()
print(obj)
# 输出:<object object at 0x000001B43790D510>
print(type(obj))
# 输出:<class 'object'>
print(dir(obj))
# 输出:['__class__', '__delattr__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getstate__', '__gt__',
'__hash__', '__init__', '__init_subclass__',
'__le__', '__lt__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__',
'__subclasshook__']
-
示例 2:没有 __dict__ 属性
object实例的一个重要特点是它们没有__dict__属性。__dict_属性是一个字典,用于存储对象的可写属性。由于object实例没有_dict__,因此不能给 object的实例动态地添加属性。
obj = object()
try:
obj.new_attr = "value"
except AttributeError as e:
print(e)
# 输出:'object' 对象没有属性 'new_attr'


本篇文章来源于微信公众号: 码农设计师