índice
01. dir
Funções integradas
Python
No assunto é quase onipresente , antes de aprender as variáveis , dados , funções são objetos
Na Python
pode ser verificada utilizando os dois métodos seguintes:
- O identificador / entrada de dados após
.
pressionar oTAB
botão,iPython
você será solicitado a chamar o objeto pode ser uma lista de métodos - Funções integradas usando
dir
o identificador / dados de entrada , o objeto pode ser visto em todas as propriedades e métodos
O __方法名__
formato da dica é Python
fornecer um método / propriedade embutido , lhe dará alguns métodos / propriedades embutidos comuns posteriormente
Número de série | Nome do método | Tipos de | efeito |
---|---|---|---|
01 | __new__ |
método | Crie um objeto , a vontade é automaticamente invocada |
02 | __init__ |
método | O objeto é inicializado quando, será invocado automaticamente |
03 | __del__ |
método | O objeto foi destruído da memória antes, será invocado automaticamente |
04 | __str__ |
método | Retorna as informações de descrição do objeto , a print saída da função usa |
As dicas fazem bom uso da dir()
função, no estudo não é preciso memorizar muito conteúdo
02. Defina uma classe simples
Orientado a objetos é mais do pacote , o pacote de vários métodos em uma classe , que é criado por meio do objeto de classe, você pode chamar esses métodos diretamente !
2.1 Defina uma classe que contém apenas métodos
- No
Python
método para definir uma classe que contém apenas a seguinte sintaxe:
class 类名:
def 方法1(self, 参数列表):
pass
def 方法2(self, 参数列表):
pass
- O formato de definição do método é quase o mesmo que a função aprendida antes
- A diferença é que o primeiro parâmetro deve ser
self
, por favor, lembre-se por enquanto e apresente-o mais tardeself
Nota: O nome das convenções de nomenclatura de classe para atender à nomenclatura de grande corcunda
2.2 Criar objetos
- Quando uma classe é definida, use esta classe para criar um objeto, o formato da sintaxe é o seguinte:
对象变量 = 类名()
2.3 Caso
exigem
- Gatinhos amo comer peixe, o gatinho a beber água
análise
- Defina um gato
Cat
- Define dois métodos,
eat
edrink
- Sob demanda - sem necessidade de definir atributos
class Cat:
"""这是一个猫类"""
def eat(self):
print("小猫爱吃鱼")
def drink(self):
print("小猫在喝水")
tom = Cat()
tom.drink()
tom.eat()
Ênfase em conceitos referenciados
No desenvolvimento orientado a objetos, o conceito de referência é igualmente aplicável!
- No
Python
uso da classe após a criação de objetos , astom
variáveis ainda são gravadas endereço do objeto na memória - Ou seja, a
tom
variável faz referência a novos objetos de gato - Use
print
a saída variável de objeto , por padrão, é capaz de emitir a variável referências de objeto são feitas que criou um objeto de classe , bem como um endereço na memória ( hexadecimal )
Dica: No computador, geralmente o endereço de memória de representação hexadecimal
%d
Pode produzir números em decimais%x
Pode produzir números em hexadecimal
03. O método do self
parâmetro
3.1 Adicionar atributos aos objetos
- No
Python
meio, você deseja definir as propriedades para objetos , muito fácil, mas não recomendado- Porque: o encapsulamento das propriedades do objeto deve ser encapsulado dentro da classe
- Só precisa de classe de código externo diretamente na
.
definição de uma propriedade para
Observação: embora esse método seja simples, ele não é recomendado!
tom.name = "Tom"
...
lazy_cat.name = "大懒猫"
3.2 self
Nos métodos internos, a saída do nome de cada gato
De qual chamada de método de objeto , no método
self
é uma referência a um objeto que
- Dentro de um pacote de classe de método,
self
diz que o método atual de chamar o próprio objeto - Quando você chama um método , os programadores não precisam passar
self
parâmetros - Dentro do método
- Você pode
self.
acessar as propriedades do objeto - Você também pode
self.
chamar outros métodos de objeto
- Você pode
- O código de transformação é o seguinte:
class Cat:
def eat(self):
print("%s 爱吃鱼" % self.name)
tom = Cat()
tom.name = "Tom"
tom.eat()
lazy_cat = Cat()
lazy_cat.name = "大懒猫"
lazy_cat.eat()
- Na aula externa , por meio das propriedades e métodos do
变量名.
objeto de acesso - No tipo de método de embalagem ,
self.
acessando as propriedades e métodos do objeto
04. Método de inicialização
4.1 Adicionar atributos a objetos fora da classe
- Ajuste o código do caso, chame o método primeiro, depois defina as propriedades e observe o efeito de execução
tom = Cat()
tom.drink()
tom.eat()
tom.name = "Tom"
print(tom)
- O erro de execução do programa é o seguinte:
AttributeError: 'Cat' object has no attribute 'name'
属性错误:'Cat' 对象没有 'name' 属性
incitar
- No desenvolvimento diário, não é recomendado fora da classe para a propriedade de aumento de objeto
- Se o atributo não for encontrado em tempo de execução, o programa irá relatar um erro
- Deve conter objetos cujos atributos devem ser encapsulados no interior da classe
4.2 Método de inicialização
- Quando
类名()
o objeto for criado, ele fará automaticamente o seguinte:- Na memória para o espaço alocado do objeto - criando um objeto
- Propriedade dos valores iniciais do conjunto de objetos - método de inicialização (
init
)
- O método de inicialização é o
__init__
método,__init__
o objeto do método integrado
__init__
O método é usado especificamente para definir um método de classe que as propriedades possuem !
O método de Cat
aumento __init__
, verifique se o método é chamado automaticamente quando você cria um objeto
class Cat:
"""这是一个猫类"""
def __init__(self):
print("初始化方法")
4.3 Definir propriedades dentro do método de inicialização
- No
__init__
interior do usoself.属性名 = 属性的初始值
podem ser definidas propriedades - Depois de definir o atributo e usar a
Cat
classe para criar objetos, você será o proprietário da propriedade
class Cat:
def __init__(self):
print("这是一个初始化方法")
# 定义用 Cat 类创建的猫对象都有一个 name 的属性
self.name = "Tom"
def eat(self):
print("%s 爱吃鱼" % self.name)
# 使用类名()创建对象的时候,会自动调用初始化方法 __init__
tom = Cat()
tom.eat()
4.4 Defina o valor inicial durante a inicialização
- No desenvolvimento, se você deseja criar simultaneamente um objeto, defina as propriedades de um objeto , pode
__init__
ser uma transformação de método- O valor desejado do conjunto de propriedades, definido como os
__init__
parâmetros do método - No método usando os
self.属性 = 形参
parâmetros internos recebeu transmissão externa - Ao criar um objeto, use
类名(属性1, 属性2...)
call
- O valor desejado do conjunto de propriedades, definido como os
class Cat:
def __init__(self, name):
print("初始化方法 %s" % name)
self.name = name
...
tom = Cat("Tom")
...
lazy_cat = Cat("大懒猫")
...
05. Métodos e propriedades integradas
Número de série | Nome do método | Tipos de | efeito |
---|---|---|---|
01 | __del__ |
método | O objeto foi destruído da memória antes, será invocado automaticamente |
02 | __str__ |
método | Retorna as informações de descrição do objeto , a print saída da função usa |
5.1 __del__
Método
-
Python
no- Quando você usa
类名()
quando você cria um objeto, o objeto é a alocação completa de espaço , o método de chamada automática__init__
- Quando um objeto é destruído da memória antes, ele chamará automaticamente o
__del__
método
- Quando você usa
-
Cenários de aplicação
__init__
Transforme o método de inicialização para tornar a criação de objetos mais flexível__del__
Se você quiser antes que o objeto seja destruído, faça algumas coisas que você pode considerar__del__
métodos
-
ciclo da vida
- Um objeto de uma chamada para
类名()
criar o ciclo de vida começa - Um objeto,
__del__
uma vez que o método é chamado, o fim do ciclo de vida - Durante o ciclo de vida do objeto, você pode acessar as propriedades do objeto ou permitir que os métodos de chamada do objeto
- Um objeto de uma chamada para
class Cat:
def __init__(self, new_name):
self.name = new_name
print("%s 来了" % self.name)
def __del__(self):
print("%s 去了" % self.name)
# tom 是一个全局变量
tom = Cat("Tom")
print(tom.name)
# del 关键字可以删除一个对象
del tom
print("-" * 50)
5.2 __str__
Método
- Em
Python
usandoprint
a saída variável de objeto , por padrão, esta variável será de saída referências de objeto são feitas que criou um objeto de classe , bem como um endereço na memória ( hexadecimal ) - Se em desenvolvimento, deseja usar as variáveis do objeto de
print
saída , é possível imprimir o conteúdo personalizado , você pode usar o método embutido de__str__
Nota: o
__str__
método deve retornar uma string
class Cat:
def __init__(self, new_name):
self.name = new_name
print("%s 来了" % self.name)
def __del__(self):
print("%s 去了" % self.name)
def __str__(self):
return "我是小猫:%s" % self.name
tom = Cat("Tom")
print(tom)