Python实例方法、类方法和类方法静态方法浅析

上一篇 / 下一篇  2021-04-22 10:07:00

  一、前言
  类方法也可以进行更细致的划分,具体可分为类方法、实例方法和静态方法。
  二、案例详解
  实例方法
  通常情况下,在类中定义的方法默认都是实例方法。
  例:
  class CLanguage: 
      # 类构造方法,也属于实例方法 
      def __init__(self): 
          self.name = "百度
          self.add = "www.baidu.com" 
   
      # 下面定义了一个say实例方法 
      def say(self): 
          print("正在调用 say() 实例方法") 
  调用say()方法,实现功能。
  clang = CLanguage() 
  clang.say() 
  运行结果:
  注:
  实例方法最少也要包含一个 self 参数,用于绑定调用此方法的实例对象。
  类方法
  Python 类方法和实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为 cls,Python 会自动将类本身绑定给 cls 参数(注意,绑定的不是类对象)。所以在调用类方法时,无需显式为 cls 参数传参。
  和实例方法最大的不同在于,类方法需要使用@classmethod修饰符进行修饰。
  例:
  class ass: 
      #类构造方法,也属于实例方法 
      def __init__(self): 
          self.name = "百度" 
          self.add = "www.baidu.com" 
      #定义了一个类方法 
      @classmethod 
      def info(cls): 
          print("正在调用类方法",cls) 
  如果没有 @classmethod,则 Python 解释器会将 fly() 方法认定为实例方法,而不是类方法。
  类方法推荐使用类名直接调用。
  #使用类名直接调用类方法 
  ass.info() 
  #使用类对象调用类方法 
  clang = ass() 
  clang.info()
  运行结果:
  类静态方法
  静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。
  静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。
  静态方法需要使用@staticmethod修饰。
  例:
  class ass: 
      @staticmethod 
      def info(name, add): 
          print(name, add) 
  静态方法可以使用类名,类对象两种方式进行调用。
  # 使用类名直接调用静态方法 
  ass.info("百度1", "www.baidu.com") 
  # 使用类对象调用静态方法 
  clang = ass() 
  clang.info("百度2", "www.baidu.com") 
  运行结果:
  三、总结
  本文基于Python基础,介绍了实例方法、类方法和类方法静态方法,通过实际案例讲解了三种方法的不同用法,通过代码演示,运行效果图的展示,能够帮助读者更好的理解。
  欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
  代码很简单,希望对你学习有帮助。

TAG: 软件开发 Python

 

评分:0

我来说两句

Open Toolbar