Os tipos de dados que aprendemos anteriormente são classes e podemos usar muitos métodos nas classes.
A definição de uma classe usa a palavra-chave class e a estrutura de sintaxe é a seguinte:
className:''''Documento de Classe'''conteúdo
Nome é o nome da classe que queremos criar. Observe que tentamos usar letras maiúsculas ao usá-la. Se usarmos duas palavras para nomeá-la, as primeiras letras das duas palavras devem ser maiúsculas.
A documentação da classe é informação escrita para nos ajudar a entender esta classe.
Conteúdo é o corpo da classe , incluindo variáveis, métodos, atributos, etc. Se não precisarmos adicionar conteúdo temporariamente ao definir a classe, podemos usar a instrução pass para atuar como uma instrução de espaço reservado.
Vamos definir uma classe:
classSchool: #Desta forma definimos uma classe chamada School'''Define a school class'''passschool=School()#Desta forma chamamos esta classe de print(type(school))#Pass output Dê uma olhada em sua digite print(escola)
A saída é:
<class'__main__.School'><__main__.Schoolobjectat0x03372DD8>
Pelos resultados, podemos ver que a escola é uma classe, e pela segunda linha, podemos ver que a escola é uma instância da classe Escola.
Ao criar uma classe, muitas vezes é criado um método __init__(). Este método é um método de construção, ou seja, este método será usado toda vez que a classe for chamada, e parâmetros também são passados neste método.
Este método deve conter um parâmetro self, que também deve ser o primeiro parâmetro. Este parâmetro aponta para a própria instância, podendo acessar as propriedades e métodos que existem nesta classe.
Veja o exemplo a seguir:
classSchool: #Desta forma definimos uma classe. Se quisermos chamar esta classe'''definir uma classe escolar''' def__init__(self):print('Aqui está o método __init()__')def__judge__( self) :print('Julgue se este método é chamado')school=School()
A saída é:
Aqui está o método __init()__
Na saída, podemos ver que enquanto esta classe for chamada, o método __init__ será chamado automaticamente, mas o método __judge__ a seguir não será chamado.
Também podemos usar um loop para verificar se o método init será usado toda vez que esta classe for chamada:
Veja o código abaixo:
classSchool:'''Definir uma turma escolar'''count=0def__init__(self):School.count+=1print('Este é o %d-ésimo uso do método __init()__'%School.count)foriinrange(5 ): Escola()
A saída é:
Aqui está o primeiro uso do método __init()__. Aqui está o segundo uso do método __init()__. o método Aqui está o 5º uso do método __init()__
Podemos ver na saída que usamos o método init 5 vezes. Quando chamamos esta classe pela primeira vez, a contagem é 0 e, em seguida, o método init é adicionado em 1. O school.count no método init é aumentado. cada vez. 1. Então a contagem mais externa permanece inalterada. Através deste exemplo, podemos aprender como usar o init.
Quando estamos aprendendo funções, a transferência de parâmetros é definida no nome da função e, na classe, podemos transferir parâmetros de forma mais conveniente por meio do método init.
Veja o exemplo a seguir:
classGetAge:def__init__(self,nome,idade):self.name=nameself.age=ageprint('A idade de%s é %d'%(nome,idade))GetAge('Xiao Ming',18)
A saída é:
A idade de Xiao Ming é 18
Precisamos observar que self é essencial e precisa ser colocado primeiro. Então, quando chamamos esta classe, o número de parâmetros (excluindo self) contidos no método init deve ser igual ao número real de parâmetros. passou.