Python笔记:@staticmethod, @classmethod, @property 装饰器语法糖原理剖析及使用场景说明
发布时间
阅读量:
阅读量
在查阅部分开源Python库的源代码过程中,常常会发现某些类的成员函数前带有类似@staticmethod、@classmethod或@property这样的语法结构。实际上,这些都属于函数装饰器的范畴,只不过它们通常被用于修饰类中的成员函数。
本笔记的主要目的是阐述这些语法结构的功能。若想了解关于普通函数装饰器的相关内容,可以参考这篇笔记。
在对这些装饰器进行详细说明之前,先来分析一下普通的成员函数。
**1. 普通成员函数的基本概念
**对于Python语言中的类而言,其常规的成员函数在定义时,默认会将当前实例作为第一个参数传入。以下是一个常见的定义示例:
class C:
def __init__(self): ## NOTICE: 不传入参数时创建实例会报错;"self"只是约定俗成的参数名而已,非语法的硬性规定
pass
我们能够借助print C.init__这一方式来观察函数__init()的实现:
>>> class C():
... def __init__(self):
... pass
...
>>> print C.__init__
全部评论 (0)
还没有任何评论哟~
