Python魔法方法、属性与迭代器全解析
1. 静态方法与类方法
在Python中,静态方法和类方法的历史重要性并不高。这主要是因为在某种程度上,我们总是可以使用普通函数或绑定方法来替代它们,而且早期版本对它们的支持也不够完善。不过,它们仍然有自己的用途,比如工厂函数。
下面是一个定义静态方法和类方法的示例:
class MyClass:
@staticmethod
def smeth():
print('This is a static method')
@classmethod
def cmeth(cls):
print('This is a class method of', cls)
MyClass.smeth()
MyClass.cmeth()
在上述代码中,我们定义了 MyClass 类,其中包含静态方法 smeth 和类方法 cmeth 。静态方法不需要实例化类就可以调用,类方法则会接收类本身作为第一个参数。
2. 属性拦截魔法方法
我们可以拦截对象的每一次属性访问。这可以用于在旧风格类中实现属性(在旧风格类中, property 可能无法按预期工作)。以下四个魔法方法提供了所需的全部功能(在旧风格类中,只使用后三个):
- __getattribute__(self, name) :当访问属性名时自动
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



