`
javahigh1
  • 浏览: 1227429 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Python 实例方法、@staticmethod和@classmethod

 
阅读更多

Python 除了拥有实例方法外,还拥有静态方法和类方法,跟Java相比需要理解这个类方法的含义。


  • 实例方法访问方式:

  • 类方法访问方式:

如果Foo有了子类并且子类覆盖了这个类方法,最终调用会调用子类的方法并传递的是子类的类对象。


输出结果:

  • 静态方法调用方式:

静态方法就跟普通的Java静态方式一样

Foo.test3();//直接静态方式调用

  • 总结

其实通过以上可以看出:

实例方法,类方法,静态方法都可以通过实例或者类调用,只不过实例方法通过类调用时需要传递实例的引用(python 3可以传递任意对象,其他版本会报错)。

三种方法从不同层次上来对方法进行了描述:实例方法针对的是实例,类方法针对的是类,他们都可以继承和重新定义,静态方法也能继承(NND),可以认为是全局函数。



  


  
分享到:
评论

相关推荐

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

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

    python的staticmethod与classmethod实现实例代码

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

    python面向对象day03.txt

    静态方法 @staticmethod 类名.静态方法名(传参) 对象.静态方法名(传参) 类内的 __slots__ 列表属性 class Student: __slots__ = ['name', 'score'] 类的文档字符串 类内的 __doc__属性绑定文档字符串 继承 ...

    Python实例方法、类方法、静态方法区别详解

    静态方法:需要添加装饰器 —> @staticmethod 3、调用: 1.实例方法可以通过对象直接调用 2.但是用类名调用的时候,需要创建一个对象,并且在传递参数的时候要将对象传递进去 3.类方法可以通过类名直接调用,也可以...

    超全面python面试题

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

    1 python的三种类方法

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

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

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

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

    类方法和静态方法;类方法是类所拥有的方法,需要用修饰器“@classmethod”来标识其为类方法。对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(同self一样只是一个习惯),能够通过对象名调用类方法,...

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

    python 中的self和cls 一句话描述:self是类(Class)实例化对象,cls就是类(或子类)本身,取决于调用的是那个类。 @staticmethod 属于静态方法装饰器,@classmethod属于类方法装饰器。我们需要从声明和使用两个...

    python练手经典100例-推荐几个适合新手练手的Python项目《python入门例子》.pdf

    python练⼿经典100例-推荐⼏个适合新⼿练⼿的Python项⽬ 《python⼊门例⼦》 python 为什么实例对象可以调⽤类⽅法? 实例是什么例是类定义的实。那么,类中所定义的属⽅只要没有被屏蔽,在它的实体中就同样是可访问...

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

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

    【Python入门基础】静态方法与类方法

    @staticmethod定义静态方法,@classmethod定义类方法,第一个参数时cls;实例方法第一个参数是self。 三个方法都可以通过实例和类名调用,但静态方法和类方法不可以调用类里面的属性值。如果需要参数,需要自己传参...

    零基础入门python3.7 ——基础知识总结(十九) 类的方法

    静态方法 和类方法。采用@classmethod 装饰的方法称之为类方法。 用 @staticmethod 装饰的称之为静态方法。不做任何装饰的称之为实例方法。 一。实例方法 定义在类中的默认方法都属于实例方法。 包括构造方法也...

    Python语言高频重点汇总

    @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9. 迭代器和生成器10. args和**kwargs11. 面向切...

    Python自定义装饰器原理与用法实例分析

    本文实例讲述了Python自定义装饰器原理与用法。分享给大家供大家参考,具体如下: 什么是装饰器?装饰器本质是一个函数,它可以在不改变原来的函数的基础上额外的增加一些功能。如常见的@classmethod,@staticmethod...

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

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

    python(类、静态、属性方法)_.mp4

    ython 类语法中有三种方法,实例方法,静态方法,类方法。 ps.python中self,cls的区别 普通实例方法,第一个参数需要是self,它表示一个具体的实例本身。 如果用了staticmethod,那么就可以无视这个self,而将这...

    peterkulik.github.io

    彼得·库里克 完成的课程 学习 Python类型检查 登录Python 如何将自己的Python包发布到PyPI Python如何管理内存 Python与Java:面向对象的编程 ... Python中的OOP方法类型:@classmethod与@staticmethod与实例方法

    Python核心编程第二版

     1.4 下载和安装Python   1.5 运行Python   1.5.1 命令行上的交互式解释器   1.5.2 从命令行启动脚本   1.5.3 集成开发环境   1.5.4 其他的集成开发环境和执行环境   1.6 Python文档   1.7 ...

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

    python staticmethod and classmethod 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 ...

Global site tag (gtag.js) - Google Analytics