在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
類,可以在自定義類中使用這些方法和屬性,以及其他許多用于自定義類行為的功能。