Diretório de artigos
prefácio
O conteúdo de aprendizagem desta vez é principalmente aulas orientadas a objetos.
1. Crie e use classes
A seguir está uma definição simples de uma classe: não há parênteses depois de Dog, indicando que esta classe não herda de outras classes e é criada do zero.
>>> class Dog:
def __init__(self,name,age):
self.name = name
self.age = age
def sit(self):
print("{name} is sit".format(name = self.name))
O método __init__() é um método mágico. Existem três parâmetros formais neste método, self, nome, idade, entre os quais self não pode faltar, pois ao chamar esta classe para criar uma instância, o método init será chamado automaticamente, e então o parâmetro real self é passado automaticamente, e cada chamada de método relacionada à instância passará automaticamente o parâmetro real self, que é uma referência à própria instância, permitindo que a instância acesse as propriedades e métodos na classe.
O método sit() é um método comum com apenas um parâmetro formal self, indicando que a instância criada pode chamar este método.
dog_1 = Dog('deng',18)
dog_1.sit()
O acima é para criar uma instância dog_1 da classe Dog e passar apenas dois parâmetros reais nome e idade, e self será passado automaticamente. Em seguida, chame o método sit()
Às vezes também é possível especificar um valor padrão para algumas propriedades.
Por exemplo
>>> class Dog:
def __init__(self,name,age):
self.name = name
self.age = age
self.number = 100
def sit(self):
print("{name} is sit".format(name = self.name))
>>> dog_1 = Dog('deng',18)
>>> dog_1.number
100
>>>
Ao definir esta classe, especifique o valor do atributo numérico como 100, crie uma instância desta classe e imprima o valor deste atributo padrão.
2. Herança
Ao escrever uma classe, você não precisa criá-la do zero, pode optar por herdar uma classe pai.
Quando uma classe herda de uma classe pai, ela obtém todas as propriedades e métodos da classe pai. Após a subclasse herdar todas as propriedades e métodos da classe pai, ela também pode definir suas próprias propriedades e métodos.
class Animal:
def __init__(self,name,age):
self.name = name
self.age = age
def sit(self):
print("sittint")
Uma classe Animal é definida aqui
class Dog(Animal):
def __init__(self,name,age,number):
super().__init__(name,age)
self.number = number
Em seguida, defina uma classe Dog que herda da classe pai Animal. No método __init__ da subclasse, a primeira super().__init__(name,age)
função é chamar o método __init__ da classe pai, para que a subclasse contenha todos os atributos definidos neste método. Pode-se ver que a subclasse Dog() tem um número de atributo a mais do que a classe pai Animal(), então, a seguir, atribua um valor ao atributo number.
Se o método da classe pai não for adequado para a subclasse, você também pode optar por substituir o método da classe pai, basta escrever um nome de método com o mesmo nome da classe pai na subclasse.