在 Python 中,面向对象编程(OOP)是一种重要的编程范式,它基于类和对象的概念。下面是几个在面向对象编程中常用的重要函数:
class Person:
def init(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person(name={self.name}, age={self.age})"
def __repr__(self):
return f"Person('{self.name}', {self.age})"
def __getattr__(self, attr):
return f"{attr}属性不存在"
def __setattr__(self, attr, value):
print(f"设置属性 {attr} 为 {value}")
self.__dict__[attr] = value
def __del__(self):
print(f"{self.name}对象被销毁")
def __call__(self, new_name):
self.name = new_name
print(f"姓名已更新为 {self.name}")
创建一个 Person 实例
person = Person(“Alice”, 30)
打印对象的友好字符串表示形式
print(person) # 输出:Person(name=Alice, age=30)
打印对象的官方字符串表示形式
print(repr(person)) # 输出:Person(‘Alice’, 30)
访问不存在的属性
print(person.gender) # 输出:gender属性不存在
设置属性
person.address = “123 Main St” print(person.address) # 输出:123 Main St
删除对象
del person # 输出:Alice对象被销毁
创建一个 Person 实例
person = Person(“Bob”, 25)
使用对象实例调用 call() 方法
person(“Charlie”) # 输出:姓名已更新为 Charlie
1. __init__()
方法:
__init__()
方法是在创建一个对象时调用的特殊方法,用于初始化对象的状态。在类的定义中,你可以通过定义__init__()
方法来指定对象的初始化过程。这个方法通常用于初始化对象的属性。
2. __str__()
和 __repr__()
方法:
__str__()
方法用于返回对象的“友好”字符串表示形式,通常用于打印对象或在格式化字符串中使用。当你打印一个对象或在使用str()
函数时,Python 解释器会调用__str__()
方法。__repr__()
方法用于返回对象的“官方”字符串表示形式,通常包含对象的类型信息和关键属性值。当你在交互式环境中输入一个对象或使用repr()
函数时,Python 解释器会调用__repr__()
方法。
3. __getattr__()
和 __setattr__()
方法:
__getattr__()
方法用于在访问对象的不存在的属性时调用,你可以重写这个方法来定义你自己的属性访问行为。__setattr__()
方法用于在设置对象的属性时调用,你可以重写这个方法来定义属性设置的行为。这可以用于在设置属性时进行验证或转换。
4. __del__()
方法:
__del__()
方法是在对象被销毁时调用的特殊方法,用于执行对象的清理工作。你可以在这个方法中释放资源、关闭文件等。
5. __call__()
方法:
__call__()
方法允许将对象实例像函数一样调用。当你在对象实例后面加上括号并传递参数时,Python 解释器会调用对象的__call__()
方法。
这些都是 Python 中用于定义类和对象行为的重要函数。通过重写这些特殊方法,你可以自定义类的行为,使其符合你的需求。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/78958.html