python笔记之特殊方法python中的方法
更新时间:2023-11-25特殊方法是什么?
Python中的特殊方法告诉我们如何为对象定义我们自己的行为。这些方法是在类定义中使用双下划线开头和结尾的方法,例如 __init__ 和 __str__ 。特殊方法也被称为魔术方法,因为它们可以让我们直接与对象交互,例如比较,计算等。
class MyClass:
def __init__(self, a):
self.a = a
def __add__(self, other):
return MyClass(self.a + other.a)
def __str__(self):
return f"MyClass({self.a})"
x = MyClass(1)
y = MyClass(2)
z = x + y
print(z)
常用的特殊方法
以下是一些常见的特殊方法,当我们自定义类时,可以定义以下方法以修改类的行为:
- __init__ : 定义类的构造函数,当创建对象时调用。
- __str__ : 定义对象的字符串表示形式,用于print()输出和str()转换。
- __repr__ : 定义对象的字符串表示形式,用于交互式控制台输出对象以及调用repr()函数。
- __len__ : 定义对象的长度,用于支持len()函数。
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"MyClass({self.x}, {self.y})"
def __repr__(self):
return f"MyClass({self.x}, {self.y})"
def __len__(self):
return self.x + self.y
obj = MyClass(3, 5)
print(obj) # 输出 MyClass(3, 5)
print(repr(obj)) # 输出 MyClass(3, 5)
print(len(obj)) # 输出 8
Python中的方法
Python中的方法是在类定义中声明的函数,它们是对象中的函数。在调用对象方法时,第一个参数是self,它是指向对象本身的引用。
class MyClass:
def print_hello(self):
print("Hello!")
obj = MyClass()
obj.print_hello() # 输出 "Hello!"
有时我们希望对象方法能够改变对象本身的状态。我们可以使用实例变量来存储和修改对象状态。
class Car:
def __init__(self, color, model):
self.color = color
self.model = model
self.mileage = 0
def drive(self, distance):
self.mileage += distance
car1 = Car("red", "sedan")
print(car1.color) # 输出 red
car1.drive(100)
print(car1.mileage) # 输出 100
总结
Python中的特殊方法可以让我们定义自己的类行为。对象方法是访问和修改对象状态的工具。这些工具可以使我们的代码更加模块化,易于维护和理解。