`

一开始真受不了啊,staticmethod & classmethod

阅读更多
ref:http://www.cnblogs.com/chenzehe/archive/2010/09/01/1814639.html

classmethod:类方法
staticmethod:静态方法

在python中,静态方法和类方法都是可以通过类对象和类对象实例访问。但是区别是:

@classmethod 是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法。 类方法的第一个参数cls,而实例方法的第一个参数是self,表示该类的一个实例。
普通对象方法至少需要一个self参数,代表类对象实例
类方法有类变量cls传入,从而可以用cls做一些相关的处理。并且有子类继承时,调用该类方法时,传入的类变量cls是子类,而非父类。 对于类方法,可以通过类来调用,就像C.f(),有点类似C++中的静态方法, 也可以通过类的一个实例来调用,就像C().f(),这里C(),写成这样之后它就是类的一个实例了。
静态方法则没有,它基本上跟一个全局函数相同,一般来说用的很少
分享到:
评论

相关推荐

    Python中staticmethod和classmethod的作用与区别

    今天小编就为大家分享一篇关于Python中staticmethod和classmethod的作用与区别,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    Python @函数装饰器及@staticmethod,@classmethod.docx

    使用 @ 符号引用已有的函数(比如 @staticmethod、@classmethod)后,可用于修饰其他函数,装饰被修饰的函数。那么我们是否可以开发自定义的函数装饰器呢? 答案是肯定的。当程序使用“@函数”(比如函数 A)...

    基于python中staticmethod和classmethod的区别(详解)

    下面小编就为大家带来一篇基于python中staticmethod和classmethod的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    python的staticmethod与classmethod实现实例代码

    主要介绍了python的staticmethod与classmethod实现实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析

    主要介绍了Python 类方法和实例方法(@classmethod),静态方法(@staticmethod),结合实例形式分析了Python 类方法和实例方法及静态方法相关原理、用法及相关操作注意事项,需要的朋友可以参考下

    python装饰器decorator介绍

    一、装饰器decorator ... 比较常用的功能一般使用decorator来实现,例如python自带的staticmethod和classmethod。 装饰器有两种形式: 复制代码 代码如下: @A def foo():  pass 相当于: 复制代码 代码如下

    python实现装饰器、描述符

    装饰器进阶:property、staticmethod、classmethod源码分析(python代码实现) 装饰器基础 无参装饰器 ''' 假定有一个需求是:打印程序函数运行顺序 此案例打印的结果为: foo1 function is starting foo2 ...

    Python探索之静态方法和类方法的区别详解

    Though classmethod and staticmethod are quite similar, there's a slight difference in usage for both entities: classmethod must have a reference to a class object as the first parameter, whereas st

    Python程序基础:类方法和静态方法.pptx

    对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(同self一样只是一个习惯),能够通过对象名调用类方法,也可以通过类名调用类方法。;要在类中使用静态方法,需在类成员方法前加上“@staticmethod”...

    Pyramid Stereo Matching Network代码理解1-Cosnet部分重点理解

    而使用@staticmethod或@classmethod,不需要实例化,直接类名.方法名()来调用。 空洞残差网络结构 self.conv1 = StackedBlocks(n_blocks=3, in_channels=32, out_channels=32, kernel_size=3, stride=1, padding=1, ...

    深入浅析python 中的self和cls的区别

    而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。:thinking_face: 首先定义一个类A...

    超全面python面试题

    3 @staticmethod和@classmethod 4 类变量和实例变量 5 Python自省 6 字典推导式 7 Python中单下划线和双下划线 8 字符串格式化:\x和.format 9 迭代器和生成器 10 *args and **kwargs 11 面向切面编程AOP和装饰器 12 ...

    Python面试内容很多,干货满满

    3 @staticmethod和@classmethod 。 4 类变量和实例变量 o 5 Python自省 。6字典推导式 。 7 Python中单下划线和双下划线 。8 字符串格式化:\x和.format 。 9 选代器和生成器 10*args and **kwargs 。 11 面向切面...

    Python 静态方法和类方法实例分析

    主要介绍了Python 静态方法和类方法,结合实例形式分析了Python类、实例、静态方法等相关概念、原理与使用技巧,需要的朋友可以参考下

    1 python的三种类方法

    1 类方法 @classmethod :基于类的一些属性进行调用,第一个参数是cls 2 静态方法 @staticmethod: 本质上和普通函数没什么不同,归集到一个类下面,相当于整理 3 实例方法 :需要结合对象的实例使用,第一个参数是cls

    Python 工匠:使用装饰器的技巧

    在做面向对象编程时,我们就经常会用到 @staticmethod和 @classmethod 两个内置装饰器。此外,如果你接触过 click 模块,就更不会对装饰器感到陌生。click 最为人所称道的参数定义接口 @click.option(.

    python面向对象day03.txt

    属性名 = 表达式 添加实例变是一 实例方法(行为) def 实例方法名(self, .....): .... 类: 类变量(属性) 类方法(行为) @classmethod @classmethod def 类方法名(cls, .....): .... 静态方法 @staticmethod...

    python面向对象 反射原理解析

    一、静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属×××互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数...

    Python拾趣009 修饰器@简介和简单应用

    在写类的时候经常用到@staticmethod或@classmethod修饰符,这样就可以不需要实例化,直接类名.方法名()来调用。 所以修饰器用到好多地方的。 例子 PyQt AND OpenCV By LiNYoUBiAo 2020/4/19 19:49 from functools...

    Python基于staticmethod装饰器标示静态方法

    staticmethod(function) Return a static method for function. A static method does not receive an implicit first argument. The @staticmethod form is a function decorator – see the description of ...

Global site tag (gtag.js) - Google Analytics