Python中,依据界说方式和用途的不同,能够将办法分类为实例办法、类办法和静态办法。下面来逐一解说这三种办法,并给出示例:

1. 实例办法

  • 实例办法是类的默许办法类型。
  • 它们的第一个参数总是表明当时目标的实例,习惯上命名为self
  • 实例办法能够拜访类内的特点和其他办法。
  • 实例办法有必要经过一个类的实例来调用。

示例:

class MyClass:
    def __init__(self, value):
        self.value = value
    def instance_method(self):
        return 'value:', self.value

运用实例办法的例子:

obj = MyClass(10)
print(obj.instance_method())  # 拜访实例办法

2. 类办法

  • 类办法经过@classmethod装修器界说。
  • 它们的第一个参数总是表明类自身,习惯上命名为cls
  • 类办法能够拜访类变量或者创立类的实例。
  • 类办法能够被类和类的一切实例调用。

示例:

class MyClass:
    count = 0
    @classmethod
    def class_method(cls):
        cls.count  = 1
        return cls.count

运用类办法的例子:

print(MyClass.class_method())  # 经过类调用
obj = MyClass()
print(obj.class_method())  # 经过实例调用

3. 静态办法

  • 静态办法经过@staticmethod装修器界说。
  • 静态办法不接受隐式的第一参数(即它们既不需求实例也不需求类作为参数)。
  • 静态办法就像普通的函数,只是它们出于逻辑上的考虑被放在类的界说中。
  • 静态办法能够被类和类的一切实例调用。

示例:

class MyClass:
    @staticmethod
    def static_method():
        return 'static method called'

运用静态办法的例子:

print(MyClass.static_method())  # 经过类调用
obj = MyClass()
print(obj.static_method())  # 经过实例调用

总结

  • 实例办法需求一个类的实例,并且能够拜访该实例的特点和办法。
  • 类办法不需求类的实例,它的参数是类自身,能够拜访类变量和修正类状况。
  • 静态办法既不需求类实例,也不需求类自身作为参数,首要用于在类界说内部包含一些逻辑上归于类的函数,但这些函数既不需求类也不需求类实例。