下面我会详细讲解“Python面向对象特殊属性及方法解析”的完整攻略。
1. Python面向对象特殊属性
在Python的面向对象编程中,有一些特殊的属性,这些属性都是以双下划线开头和结尾的,被称作特殊属性(或魔法属性)。这里介绍一些常用的特殊属性:
__init__
__init__
方法是类的构造方法,在创建一个对象时自动调用,用于完成对象的初始化操作。示例代码如下:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("小明", 18)
print(person.name) # 输出 "小明"
print(person.age) # 输出 18
__str__
__str__
方法定义了当对象被打印时的行为,默认打印对象的内存地址。可以覆盖默认行为,以便在打印对象时显示自定义的信息。示例代码如下:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}今年{self.age}岁了"
person = Person("小明", 18)
print(person) # 输出 "小明今年18岁了"
2. Python面向对象特殊方法
在Python的面向对象编程中,除了特殊属性外,还有一些特殊方法,这些方法都是以双下划线开头和结尾的,被称作特殊方法(或魔法方法)。这里介绍一些常用的特殊方法:
__call__
__call__
方法定义了当对象被调用时的行为,使得对象可以像函数一样被调用。示例代码如下:
class Counter:
def __init__(self):
self.count = 0
def __call__(self):
self.count += 1
print(f"计数器值为: {self.count}")
counter = Counter()
counter() # 输出 "计数器值为: 1"
counter() # 输出 "计数器值为: 2"
__getitem__
和 __setitem__
__getitem__
和 __setitem__
方法定义了对象的索引行为,使得对象可以像序列一样被索引和赋值。示例代码如下:
class MyList:
def __init__(self, data):
self.data = data
def __getitem__(self, index):
return self.data[index]
def __setitem__(self, index, value):
self.data[index] = value
my_list = MyList([1, 2, 3])
print(my_list[1]) # 输出 2
my_list[1] = 5
print(my_list[1]) # 输出 5
以上就是“Python面向对象特殊属性及方法解析”的攻略了,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python面向对象特殊属性及方法解析 - Python技术站