Python中实例方法、类方法和静态方法有什么区别和用途?

2026-04-13 17:481阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1258个文字,预计阅读时间需要6分钟。

Python中实例方法、类方法和静态方法有什么区别和用途?

一、前言及分类方法方法也均可进行更细致的划分,具体可分为类方法、实例方法和静态方法。

二、案例详解实例方法在通常情况下,类中定义的方法默认为实例方法。例如:pythonclass CLanguage: def __init__(self, name): self.name=name

Python中实例方法、类方法和静态方法有什么区别和用途?

def describe(self): return fThis is a {self.name} language.在这个例子中,`describe` 方法是实例方法,它依赖于类的实例(对象)。

静态方法静态方法不依赖于类的实例,通常用于工具类或辅助类。例如:pythonclass CLanguage: @staticmethod def get_all_languages(): return [Python, Java, C++]这里,`get_all_languages` 是一个静态方法,可以直接通过类名调用。

类方法类方法接受一个额外的参数 `cls`,它代表当前类的类对象。例如:pythonclass CLanguage: def __init__(self, name): self.name=name

@classmethod def get_language(cls, name): if name in cls.get_all_languages(): return cls(name) else: return None在这个例子中,`get_language` 是一个类方法,它使用 `cls` 来访问类属性或调用类方法。

一、前言

类方法也可以进行更细致的划分,具体可分为类方法、实例方法和静态方法。


二、案例详解
  1. 实例方法

    通常情况下,在类中定义的方法默认都是实例方法。

例:

class CLanguage: # 类构造方法,也属于实例方法 def __init__(self): self.name = "百度" self.add = "www.baidu.com" # 下面定义了一个say实例方法 def say(self): print("正在调用 say() 实例方法")登录后复制

调用say()方法,实现功能。

clang = CLanguage() clang.say()登录后复制

运行结果:

注:

实例方法最少也要包含一个 self 参数,用于绑定调用此方法的实例对象。

  1. 类方法

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()登录后复制

运行结果:

  1. 类静态方法

静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。

静态方法没有类似 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基础,介绍了实例方法、类方法和类方法静态方法,通过实际案例讲解了三种方法的不同用法,通过代码演示,运行效果图的展示,能够帮助读者更好的理解。

本文共计1258个文字,预计阅读时间需要6分钟。

Python中实例方法、类方法和静态方法有什么区别和用途?

一、前言及分类方法方法也均可进行更细致的划分,具体可分为类方法、实例方法和静态方法。

二、案例详解实例方法在通常情况下,类中定义的方法默认为实例方法。例如:pythonclass CLanguage: def __init__(self, name): self.name=name

Python中实例方法、类方法和静态方法有什么区别和用途?

def describe(self): return fThis is a {self.name} language.在这个例子中,`describe` 方法是实例方法,它依赖于类的实例(对象)。

静态方法静态方法不依赖于类的实例,通常用于工具类或辅助类。例如:pythonclass CLanguage: @staticmethod def get_all_languages(): return [Python, Java, C++]这里,`get_all_languages` 是一个静态方法,可以直接通过类名调用。

类方法类方法接受一个额外的参数 `cls`,它代表当前类的类对象。例如:pythonclass CLanguage: def __init__(self, name): self.name=name

@classmethod def get_language(cls, name): if name in cls.get_all_languages(): return cls(name) else: return None在这个例子中,`get_language` 是一个类方法,它使用 `cls` 来访问类属性或调用类方法。

一、前言

类方法也可以进行更细致的划分,具体可分为类方法、实例方法和静态方法。


二、案例详解
  1. 实例方法

    通常情况下,在类中定义的方法默认都是实例方法。

例:

class CLanguage: # 类构造方法,也属于实例方法 def __init__(self): self.name = "百度" self.add = "www.baidu.com" # 下面定义了一个say实例方法 def say(self): print("正在调用 say() 实例方法")登录后复制

调用say()方法,实现功能。

clang = CLanguage() clang.say()登录后复制

运行结果:

注:

实例方法最少也要包含一个 self 参数,用于绑定调用此方法的实例对象。

  1. 类方法

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()登录后复制

运行结果:

  1. 类静态方法

静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。

静态方法没有类似 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基础,介绍了实例方法、类方法和类方法静态方法,通过实际案例讲解了三种方法的不同用法,通过代码演示,运行效果图的展示,能够帮助读者更好的理解。