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

 更新时间:2019年09月20日 10:54:41   作者:houyanhua1  
这篇文章主要介绍了Python 类方法和实例方法(@classmethod),静态方法(@staticmethod),结合实例形式分析了Python 类方法和实例方法及静态方法相关原理、用法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)。分享给大家供大家参考,具体如下:

demo.py(类方法,@classmethod):

class Tool(object):
  # 使用赋值语句定义类属性,记录所有实例化工具对象的数量
  count = 0
  # @classmethod 定义类方法. 第一个参数是cls (cls用于访问类属性和类方法,不能访问实例属性/方法)
  @classmethod
  def show_tool_count(cls):
    # 不能访问实例属性
    print("工具对象的数量 %d" % cls.count) # cls.类属性名 访问类属性(类方法中)
  def __init__(self, name):
    self.name = name # 实例属性
    # 类名.类属性名 访问类属性(实例方法中)
    Tool.count += 1
# 实例化工具对象
tool1 = Tool("斧头")  # tool1.__class__属性指向类对象。 tool1.__class__.count实例对象访问类属性
tool2 = Tool("榔头")
# 类名.类方法 调用类方法
Tool.show_tool_count()

运行结果:

工具对象的数量 2

demo.py(静态方法,@staticmethod):

class Dog(object):
  # @staticmethod 定义静态方法;静态方法内部不能访问类属性/方法和实例属性/方法。不需要传默认参数。
  # Python中的静态方法与在类外部定义的普通函数作用相同,只是表明该函数仅供该类使用。
  @staticmethod
  def run():
    # 不能访问实例属性/类属性
    print("小狗要跑...")
# 类名.静态方法名 调用静态方法,不需要创建对象 (也可以通过实例对象调用)
Dog.run()

运行结果:

小狗要跑...



更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python使用海龟绘图实现贪吃蛇游戏

    Python使用海龟绘图实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了Python使用海龟绘图实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 使用Python将数组的元素导出到变量中(unpacking)

    使用Python将数组的元素导出到变量中(unpacking)

    最近工作中遇到一个问题,需要利用Python将数组(list)或元组(tuple)中的元素导出到N个变量中,现在将我实现的方法分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • PyInstaller的安装和使用的详细步骤

    PyInstaller的安装和使用的详细步骤

    这篇文章主要介绍了PyInstaller的安装和使用的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • jupyter lab文件导出/下载方式

    jupyter lab文件导出/下载方式

    这篇文章主要介绍了jupyter lab文件导出/下载方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python 实现

    python 实现"神经衰弱"翻牌游戏

    这篇文章主要介绍了python 实现"神经衰弱"游戏,帮助大家更好的理解和使用python的pygame库,感兴趣的朋友可以了解下
    2020-11-11
  • Python isdigit()函数判断字符串是否全都是数字字符示例

    Python isdigit()函数判断字符串是否全都是数字字符示例

    这篇文章主要为大家介绍了Python判断字符串是否全都是数字字符示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python字典“键”和“值”的排序5种方法

    Python字典“键”和“值”的排序5种方法

    这篇文章主要介绍了5种Python字典“键”和“值”的排序方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 详解Python中的多线程编程

    详解Python中的多线程编程

    这篇文章主要介绍了详解Python中的多线程编程,Python中的多线程一直是Python学习中的重点和难点,要反复巩固!需要的朋友可以参考下
    2015-04-04
  • Python list append方法之给列表追加元素

    Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python编程判断这天是这一年第几天的方法示例

    Python编程判断这天是这一年第几天的方法示例

    这篇文章主要介绍了Python编程判断这天是这一年第几天的方法,涉及Python针对日期时间的转换与运算相关操作技巧,需要的朋友可以参考下
    2017-04-04

最新评论