prefacio
Un breve resumen de los métodos de instancia, métodos de clase, métodos libres, métodos estáticos y métodos reservados de clases en Python.
1. Método de ejemplo
Los métodos de los objetos de instancia son exclusivos de cada objeto de instancia.
Nota: El método de instancia se utiliza en forma de <nombre de objeto>.<nombre de método>(), que es equivalente a <nombre de clase>.<nombre de método>(nombre de objeto).
En segundo lugar, el método de clase.
Método de clase: un método de un objeto de clase, compartido por todos los objetos de instancia.
Nota: Los métodos de clase solo pueden operar atributos de clase y otros métodos de clase, no atributos de instancia y métodos de instancia. Utilice la forma de <nombre de clase>.<nombre de método>() o <nombre de objeto>.<nombre de método>().
3. Método gratuito
Método libre: una función ordinaria definida en el espacio de nombres de la clase, administrada por el espacio de nombres de la clase, exclusiva del objeto de la clase.
Nota: No se necesitan parámetros como cls o self, y no se requieren parámetros. Solo se pueden manipular los atributos de clase y los métodos de clase, pero los atributos de instancia y los métodos de instancia no se pueden manipular. Utilice la forma de <nombre de clase>.<nombre de método libre>().
4. Método estático
Método estático: una función ordinaria definida en una clase que puede ser compartida por objetos de clase y objetos de instancia.
Nota: No se requieren parámetros. Solo se pueden manipular los atributos de clase y otros métodos de clase, y los atributos de instancia y los métodos de instancia no se pueden manipular. Se utiliza en forma de <nombre de clase>.<nombre de método estático>() o <nombre de objeto>.<nombre de método estático>().
5. Método de retención
Métodos reservados: comienzan y terminan con guiones bajos dobles, reservados para su uso, como __name__().
class Democlass:
def __init__(self,name):
self.name = name
def getName1(self): #实例方法
return "类的实例方法"
@classmethod #类方法装饰器
def getName2(cls):
return "类的类方法"
def getName3():
return "类的自由方法"
@staticmethod #静态方法装饰器
def getName4():
return "类的静态方法"
def __name__(self):
return "类的保留方法"
dc1 = Democlass("老王")
print("类的实例方法:",dc1.getName1(),Democlass.getName1(dc1))
print("类的类方法:",dc1.getName2(),Democlass.getName4())
print("自由方法:",Democlass.getName3())
print("类的静态方法:",dc1.getName4(),Democlass.getName4())
print("类的保留方法:",dc1.__name__())