prefácio
Um breve resumo dos métodos de instância, métodos de classe, métodos livres, métodos estáticos e métodos reservados de classes em Python.
1. Método de exemplo
Os métodos dos objetos instância são exclusivos de cada objeto instância.
Nota: O método de instância é usado na forma de <nome do objeto>.<nome do método>(), que é equivalente a <nome da classe>.<nome do método>(nome do objeto).
Em segundo lugar, o método de classe
Método de classe: Um método de um objeto de classe, compartilhado por todos os objetos de instância.
Nota: Os métodos de classe só podem operar atributos de classe e outros métodos de classe, não atributos de instância e métodos de instância. Use a forma de <nome da classe>.<nome do método>() ou <nome do objeto>.<nome do método>().
3. Método gratuito
Método livre: uma função comum definida no namespace da classe, gerenciada pelo namespace da classe, exclusiva do objeto da classe.
Nota: Não há necessidade de parâmetros como cls ou self e nenhum parâmetro é necessário. Somente atributos de classe e métodos de classe podem ser manipulados, mas atributos de instância e métodos de instância não podem ser manipulados. Use a forma de <nome da classe>.<nome do método livre>().
4. Método estático
Método estático: Uma função comum definida em uma classe que pode ser compartilhada por objetos de classe e objetos de instância.
Nota: Não são necessários parâmetros. Somente atributos de classe e outros métodos de classe podem ser manipulados, e atributos de instância e métodos de instância não podem ser manipulados. Use a forma de <nome da classe>.<nome do método estático>() ou <nome do objeto>.<nome do método estático>().
5. Método de retenção
Métodos reservados: começam e terminam com sublinhados duplos, reservados para 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__())