溫馨提示×

python中的object類怎么用

小億
125
2023-12-01 02:32:35
欄目: 編程語言

在Python中,object類是所有類的基類,每個類都會隱式地繼承自object類。object類提供了一些內(nèi)置的方法和屬性,可以用于自定義類的行為。以下是一些object類的常用方法和用法:

  1. __init__():這是一個特殊方法,用于初始化對象的屬性。在自定義類時,可以在類中定義__init__()方法來初始化對象的屬性。
class MyClass(object):
    def __init__(self, name):
        self.name = name

obj = MyClass("John")
print(obj.name)  # 輸出: John
  1. __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
  1. __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
  1. __getattr__()__setattr__():這些是特殊方法,用于獲取和設(shè)置對象的屬性。可以在自定義類中重寫這些方法來控制對象的屬性訪問和賦值操作。
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類,可以在自定義類中使用這些方法和屬性,以及其他許多用于自定義類行為的功能。

0