類別方法也可以進行更細緻的劃分,具體可分為類別方法、實例方法和靜態方法。
實例方法
通常情況下,在類別中定義的方法預設都是實例方法。
範例:
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基础,介绍了实例方法、类方法和类方法静态方法,通过实际案例讲解了三种方法的不同用法,通过代码演示,运行效果图的展示,能够帮助读者更好的理解。
以上是Python實例方法、類別方法和類別方法靜態方法淺析的詳細內容。更多資訊請關注PHP中文網其他相關文章!