class中的function类型
在Python中,存在三种不同的方法类型:静态方法、类方法和实例方法。每一种都有不同的特点,应该在不同的情况下使用。
静态方法(Static Methods)
Python 中的静态方法必须通过用 @staticmethod
修饰来创建。这让 Python 知道该方法应该是静态的。
静态方法的主要特点是无需实例化类即可调用它们。这些方法是独立的,这意味着它们无法访问该类中的任何其他属性或调用任何其他方法。适用于不需要类中的其他信息(attribute 或function)可以独立完成功能的场景。
例如,如果您有一个名为 Math 的类,并且有一个名为 factorial 的方法,那么您可能不需要特定的实例来调用该方法。因此,您可以使用静态方法。1
2
3
4
5
6
7
8
9
10class Math:
def factorial(number):
if number == 0:
return 1
else:
return number * MethodTypes.factorial(number - 1)
factorial = MethodTypes.factorial(5)
print(factorial)
类方法(Class Method)
类方法必须使用装饰器 @classmethod
创建,并且这些方法与静态方法共享一个特征,无需实例化类,即可以在没有类实例的情况下调用它们。差异取决于访问其他方法和类属性但不访问实例属性的能力。
实例方法(Instance Methods)
仅当类已实例化时才能调用此方法。一旦创建了该类的对象,就可以调用实例方法,并可以通过保留字self
访问该类的所有属性。实例方法能够创建、获取和设置新的实例属性以及调用其他实例、类和静态方法。