exemplo pitão e os atributos de classe, os métodos de classe, os métodos estáticos e método de instância

Propriedades de classe e instância

  • propriedades de classe : em Python podemos atribuir classes de acesso direto podem ser divididos em público e atributos de classe privada atributos de classe (como variáveis de membro estático em Java), acesso direto à propriedade pública e propriedade privada terá que passar de métodos get e set de acesso definido (objeto para chamar a métodos get e set).
  • Exemplos de atributos : instância de um objeto (o objeto criado pela classe) Propriedade de propriedade não pode ser acessado diretamente através do nome da classe. Os objectos podem ser adicionados directamente às propriedades externas (não recomendado, porque as propriedades do objecto deve ser encapsulado dentro da classe, ou propenso a um número de erro implícito), esta propriedade é também conhecido como propriedades de instância. De um modo geral, os atributos inicializa método de instância são __init()definidos internamente por os parâmetros passados e atribuindo (método de construção semelhante em Java).
  • Note-se que as propriedades da classe de acesso a objetos não afetará o atributo de classe original, porque quando um objeto é instanciado, a alocação de memória dará um objeto espacial, de modo que as propriedades desta classe é o objeto de classe para acessar as propriedades-se desse espaço (equivalente a uma cópia), de modo a mudar o atributo de classe diretamente através do objeto não pode ter um impacto sobre a classe original.
class people:
   name = "tom"  # 类属性
   __height = 180

   def __init__(self, age):
       self.age = age  # 实例属性
   def getHeight(self):
       return self.__height
   def setHeight(self,height):
       self.__height = height

print("通过类名访问:" + people.name)
p = people(20)
p.name="max"
p.setHeight(190)
print("通过对象访问:%s %d %d"%(p.name,p.age,p.getHeight()))
print("通过类名访问:" + people.name) #p.name="max"并没有影响到原类属性

resultados:
Aqui Insert Picture Descrição

Métodos de classe, os métodos estáticos e método de instância

  • métodos de classe : classe Método objeto de propriedade, necessidade decorador @classmethodidentificados, o primeiro parâmetro deve ser um objeto de classe, geralmente calcomo o primeiro parâmetro (é claro que você não pode chamar cal, é apenas um hábito e norma), acessar através do objeto instância eo objeto (o nome da classe). método de classe permite uma instância de objecto para modificar o valor do atributo de classe (já mencionado acima, uma instância de objecto do valor do atributo classe não pode ser modificado directamente)
class people:
   name = "tom"  # 类属性
   def __init__(self, age):
       self.age = age  # 实例属性

   @classmethod
   def setName(cls,name):
       cls.name=name

p=people(20)
p.setName("max")
print(people.name)

resultados:
Aqui Insert Picture Descrição

  • Exemplos de métodos : Método instância de um objeto de propriedade, não pode acessar o objeto de classe (não diretamente pelo nome da classe de chamada). O primeiro argumento deve ser uma instância de um objeto, geralmente selfcomo o primeiro parâmetro (Da mesma forma, você não pode chamar self, é apenas um hábito e norma), sujeitas a chamada pelo exemplo.
class people:
   name = "tom"  # 类属性
   def __init__(self, age):
       self.age = age  # 实例属性
   def showAge(self):
       print("年龄:%d"%(self.age))

p=people(20)
p.showAge()

resultados:
Aqui Insert Picture Descrição

  • Método estático : decorador necessidade @staticmethod, há necessidade de definir o parâmetro a ser utilizado como uma função normal.
class people:
   name = "tom"  # 类属性
   def __init__(self, age):
       self.age = age  # 实例属性

   @staticmethod
   def showAge():
       print("姓名:"+people.name)

people.showAge()
p=people(20)
p.showAge()

resultados:
Aqui Insert Picture Descrição

Publicado 11 artigos originais · ganhou elogios 16 · vista 1826

Acho que você gosta

Origin blog.csdn.net/qq_44204959/article/details/105193797
Recomendado
Clasificación