Advertisement

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)

还没有任何评论哟~