Pythonのオブジェクトクラスの使い方
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__
- 文字列表現
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
- ネイティブな日本語で言い換えると
- ね
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.
これらはオブジェクトクラスの機能や使用方法のごく一部です。オブジェクトクラスを継承することで、これらのメソッドやプロパティをカスタムクラスで使用し、カスタムクラスの動作を操作するために使用される他の多くの機能を使用できます。