在Python中,object
类是所有类的基类,每个类都会隐式地继承自object
类。object
类提供了一些内置的方法和属性,可以用于自定义类的行为。以下是一些object
类的常用方法和用法:
__init__()
:这是一个特殊方法,用于初始化对象的属性。在自定义类时,可以在类中定义__init__()
方法来初始化对象的属性。class MyClass(object):
def __init__(self, name):
self.name = name
obj = MyClass("John")
print(obj.name) # 输出: John
__str__()
:这是一个特殊方法,用于返回对象的字符串表示形式。在自定义类时,可以重写__str__()
方法来自定义对象的打印形式。class MyClass(object):
def __init__(self, name):
self.name = name
def __str__(self):
return f"MyClass object with name: {self.name}"
obj = MyClass("John")
print(obj) # 输出: MyClass object with name: John
__eq__()
和__ne__()
:这些是特殊方法,用于比较对象的相等性和不等性。可以重写这些方法来自定义对象之间的比较操作。class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return self.x == other.x and self.y == other.y
def __ne__(self, other):
return not self.__eq__(other)
p1 = Point(1, 2)
p2 = Point(1, 2)
p3 = Point(3, 4)
print(p1 == p2) # 输出: True
print(p1 != p3) # 输出: True
__getattr__()
和__setattr__()
:这些是特殊方法,用于获取和设置对象的属性。可以在自定义类中重写这些方法来控制对象的属性访问和赋值操作。class MyClass(object):
def __getattr__(self, name):
return f"Attribute {name} does not exist."
def __setattr__(self, name, value):
print(f"Setting {name} to {value}.")
self.__dict__[name] = value
obj = MyClass()
print(obj.name) # 输出: Attribute name does not exist.
obj.age = 20 # 输出: Setting age to 20.
这些只是object
类的一小部分功能和用法。通过继承object
类,可以在自定义类中使用这些方法和属性,以及其他许多用于自定义类行为的功能。