Python 类常用操作涵盖了类的定义、实例化、访问属性和方法、继承、多态以及特殊方法的使用等。下面是一些常用的 Python 类操作示例:
1. 定义类
pythonclass MyClass:
def __init__(self, value):
self.value = value
def my_method(self):
print(self.value)
2. 实例化类
pythonobj = MyClass(10)
3. 访问属性
pythonprint(obj.value) # 输出: 10
4. 调用方法
pythonobj.my_method() # 输出: 10
5. 修改属性
pythonobj.value = 20
print(obj.value) # 输出: 20
6. 继承
pythonclass MyChildClass(MyClass):
def another_method(self):
print("This is a method from MyChildClass")
child_obj = MyChildClass(30)
child_obj.my_method() # 输出: 30
child_obj.another_method() # 输出: This is a method from MyChildClass
7. 多态
多态指的是子类对象可以当作父类对象使用,同样的方法调用用到不同的对象上会有不同的行为。
pythondef process_value(obj):
obj.my_method()
process_value(MyClass(40)) # 输出: 40
process_value(MyChildClass(50)) # 输出: 50
8. 特殊方法
- 构造函数 (
__init__
): 初始化对象 - 析构函数 (
__del__
): 对象销毁前调用 - 字符串表示 (
__str__
和__repr__
): 自定义对象的字符串表示 - 比较操作 (
__eq__
,__ne__
,__lt__
,__gt__
,__le__
,__ge__
): 自定义比较行为 - 算术操作 (
__add__
,__sub__
,__mul__
,__truediv__
, 等): 自定义算术行为 - 访问控制 (
__getattr__
,__setattr__
,__delattr__
): 控制属性访问 - 迭代器 (
__iter__
,__next__
): 允许对象被迭代 - 上下文管理 (
__enter__
,__exit__
): 允许对象用作with
语句的上下文
示例:特殊方法的使用
pythonclass MyIterable:
def __init__(self, start, end):
self.value = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.value >= self.end:
raise StopIteration
current = self.value
self.value += 1
return current
# 使用迭代器
iterable = MyIterable(0, 5)
for i in iterable:
print(i) # 输出: 0, 1, 2, 3, 4
9. 类属性和实例属性
pythonclass MyClassWithClassVar:
class_var = "I am a class variable"
def __init__(self, instance_var):
self.instance_var = instance_var
# 访问类属性
print(MyClassWithClassVar.class_var) # 输出: I am a class variable
# 创建实例并访问实例属性
obj = MyClassWithClassVar("I am an instance variable")
print(obj.instance_var) # 输出: I am an instance variable
10. 类方法和静态方法
pythonclass MyClassWithMethods:
@classmethod
def class_method(cls):
print("This is a class method")
@staticmethod
def static_method():
print("This is a static method")
MyClassWithMethods.class_method() # 输出: This is a class method
MyClassWithMethods.static_method() # 输出: This is a static method
这些操作涵盖了 Python 类的基础用法,根据具体的应用场景,可能还需要使用装饰器、属性装饰器、元类等更高级的特性来扩展类的功能。