Construtores de Python
- 4454
- 1050
- Randal Kuhlman
Introdução
Até agora, você deve estar familiarizado com a maneira como as classes básicas funcionam em Python. Se as aulas fossem exatamente o que você viu, elas seriam bastante rígidas e não tão úteis.
Felizmente, as aulas são muito mais do que apenas isso. Eles são projetados para serem muito mais adaptáveis e podem obter informações para moldar a maneira como parecem inicialmente. Nem todo carro começa exatamente o mesmo, e nem as aulas. Afinal, quão horrível seria se todo carro fosse um Ford Pinto laranja 71 '? Essa não é uma boa situação.
Escrevendo uma aula
Comece fazendo uma aula como a do último guia. Esta aula evoluirá ao longo deste guia. Ele passará de uma situação rígida, semelhante a uma fotocópia, para um modelo que pode gerar vários objetos exclusivos dentro do esboço da classe.
Escreva a primeira linha da classe, definindo -a como uma classe e nomeando -a. Este guia vai ficar com a analogia do carro de antes. Não se esqueça de passar sua aula objeto
para que estenda a base objeto
aula.
carro de classe (objeto):
Abaixo disso, recue e crie suas variáveis. Geralmente, as variáveis de classe são agrupadas perto do topo da classe e os métodos são mantidos abaixo. Não é estritamente obrigatório, mas ajuda a manter o código limpo. Crie apenas variáveis para marca, modelo, ano, quilometragem e cor. Não faz sentido construir uma aula super detalhada.
make = "Ford" Model = "Pinto" ano = "1971" MILEAGE = "253812" Color = "Orange"
Neste ponto, você pode testar suas variáveis para garantir que sua classe esteja funcionando corretamente. Crie e objeta e tente imprimir o modelo do seu carro. Em seguida, reatceneira a variável do modelo e imprima -a novamente.
mycar = car () print ("meu carro é um % s" % mycar.modelo) mycar.Model = "Mustang" print ("meu carro é um % s" % mycar.modelo)
Isso é uma atualização, mas seu carro ainda não pode fazer nada. É hora de adicionar um método. Crie um novo método em sua classe chamado Siga em frente
que aceita uma variável chamada "velocidade.”Então, peça ao modelo do seu carro e quão rápido está indo. Não se esqueça de incluir auto
.
def move_forward (self, speed): print ("seu %s está avançando em %s" %(self.modelo, velocidade)))
Teste isso com sua classe.
mycar.move_forward ("25 mph")
Tudo deveria estar indo bem, e seu carro deve estar correndo.
Criando um construtor
Alterar variáveis depois que um objeto é criado é desajeitado e ineficiente. Você não apenas perde tempo, mas também aumenta seu código. Isto é especialmente verdade se você estiver criando várias instâncias da mesma classe e alterando cada uma delas.
Existe um conceito em programação orientada a objetos chamada A construtor
. Os construtores são métodos especiais que permitem que um objeto faça argumentos quando é criado e execute automaticamente ações. Eles geralmente são usados para atribuir variáveis no momento em que um objeto é instanciado.
No caso do Python, você cria um construtor como faria com qualquer outro método, usando Dev
, Mas todo construtor tem o mesmo nome, __iniciar__
. Você pode pensar em __iniciar__
como é curto para inicializar porque é executado quando o objeto é inicializado.
Crie um construtor para o seu carro que absorva todas as variáveis como parâmetros e as atribui a variáveis de instância com auto
. Uma variável de instância é apenas uma variável que existe em uma instância específica de um objeto.
def __init __ (self, make, modelo, ano, quilometragem, cor): self.fazer = fazer eu.Model = Model self.ano = ano eu.milhagem = milhagem.cor = cor
Certifique -se de excluir as declarações variáveis antigas. Você não precisa mais deles.
Usando o construtor
Execute seu código novamente e veja o que acontece. Se você recebeu um erro, está fazendo certo. Agora, toda vez que você cria uma instância de Carro()
, você precisa passar por argumentos suficientes para corresponder aos parâmetros que você especificou.
Volte e modifique a instanciação do mycar
para passar os argumentos necessários.
mycar = carro ('Dodge', 'Challenger', '2017', 1500, 'Black')
Execute seu código novamente. Tudo deve funcionar, e você deve ter um carro diferente funcionando.
Como você já viu, este não é o sistema perfeito. E se você ainda quiser um modelo padrão, para não precisar passar em todos os argumentos? Você pode absolutamente fazer isso também. Você só precisa definir todos os parâmetros no seu construtor igual ao valor que deseja ser seu padrão.
def __init __ (self, make = 'ford', modelo = 'pinto', ano = '1971', milhagem = '253812', cor = 'laranja'): eu.fazer = fazer eu.Model = Model self.ano = ano eu.milhagem = milhagem.cor = cor
Se você criar uma nova instância de Carro()
E não passe nada, ele criará seu bom e velho Ford Pinto novamente. Tente compará -los lado a lado para ver a diferença.
mycar = car () myNewcar = car ('Dodge', 'Challenger', '2017', 1500, 'Black') Mycar.move_forward ('25 mph') MyNewcar.move_forward ('85 mph')
Pensamentos finais
Seria uma merda se todo carro fosse um Ford Pinto de 71 '. É a mesma coisa para objetos. Se você tivesse que criar uma nova classe como modelo para cada variação de um objeto, realmente não haveria nenhum valor na programação orientada a objetos. Os construtores permitem que as classes sejam muito mais fluidas e adaptáveis. Você pode criar tantas novas instâncias diferentes de um objeto que você precisa da mesma classe sem nunca ter que voltar e mudar qualquer coisa.
Pratique fazer uma nova aula e adicionar um construtor, depois usando essa classe um pouco em seu script.
Exercícios
- Crie uma nova classe chamada “Computador.”
- Crie um construtor para "computador" que leva quatro variáveis.
- Imprima uma de suas variáveis. Reatrimorando seu valor e imprimi -lo novamente.
- Faça um método que use pelo menos duas de suas variáveis.
- Implemente um construtor para "computador" que aceita todas as suas variáveis.
- Crie uma nova instância de "computador" e passe os argumentos corretos.
- Execute seu método na nova instância de “computador.”
- Adicione valores padrão ao construtor "computador".
- Crie uma instância vazia de “computador.”
- Execute seu método na nova instância vazia.
Tutoriais do Linux relacionados:
- Uma introdução à automação, ferramentas e técnicas do Linux
- Coisas para instalar no Ubuntu 20.04
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
- Mastering Bash Script Loops
- Sistema Linux Hung? Como escapar para a linha de comando e…
- Loops aninhados em scripts de basquete
- Ubuntu 20.04 Guia
- Tutorial de depuração do GDB para iniciantes
- Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…