Python学习笔记--类的方法

在Python中,类、类方法、实例方法和静态方法都是面向对象编程的重要概念。以下是它们之间的主要区别:

  1. 类(Class):类是创建对象的模板或蓝图。它定义了对象的属性和方法。在Python中,使用class关键字来定义一个类。

  2. 类方法(Class Method):类方法是与类关联的方法,而不是与类的实例关联的方法。它使用@classmethod装饰器进行定义,并且第一个参数必须是cls,表示类本身。

  3. 实例方法(Instance Method):实例方法是与类的实例关联的方法。它使用def关键字进行定义,并且第一个参数必须是self,表示实例本身。

  4. 静态方法(Static Method):静态方法是与类关联的方法,它使用@staticmethod装饰器进行定义,并且不接受任何特殊参数。

class MyClass:  
      
    # 静态方法  
    @staticmethod  
    def my_static_method(arg1, arg2):  
        print(f"类的静态方法调用,参数值: {arg1} and {arg2}")  
      
    # 类方法  
    @classmethod  
    def my_class_method(cls, arg1):  
        print(f"类方法调用,参数: {arg1}")  
        cls.my_static_method("类中类方法调用类中静态方法案例", "liuzx")  # 调用静态方法  
      
    # 实例方法  
    def my_instance_method(self, arg1):  
        print(f"类实例方法调用,参数值: {arg1}")  
        self.my_static_method("类实例方法调用类中静态方法案例:", "liuyf")  # 调用静态方法  
  
# 创建类的实例并调用实例方法  
obj = MyClass()  
obj.my_instance_method("类实例化,调用执行类实例方法。")   
  
# 直接通过类调用类方法(注意:这不是推荐的做法,通常应该通过类实例来调用类方法)  
MyClass.my_class_method("使用类名字,调用执行类方法")  

# 直接通过类调用类中静态方法
MyClass.my_static_method('使用类名直接调用类中的静态方法:','liuyf')

# 直接通过类实例对象调用类中静态方法
obj.my_static_method('使用类对象名调用类中的静态方法:','liuyf')

静态方法可以在类中由类方法及类实例方法调用,就像调用一个Python内置函数一样。

使用<类名.类静态方法名>或<类实例对象名.类静态方法名>方式调用类静态方法,就像调用一个Python函数一样。

在类的静态方法内,可以使用类名来调用其他类方法,但不能直接使用类实例方法。这是因为静态方法不依赖于类实例,而实例方法需要一个实例对象来调用。

你可能感兴趣的:(python,学习,笔记)