[Aprendizagem Python] — Orientado a Objetos (9)
1. Primeiro contato com objetos
Uma classe pode não apenas definir atributos para registrar dados, mas também definir funções para registrar comportamentos.Os atributos (variáveis) definidos na classe são chamados de variáveis de membro, e os comportamentos (funções) definidos na classe são chamados de métodos de membro.
Sintaxe de definição de método de membro
O papel de si mesmo
- Representa o significado do próprio objeto
- Somente por meio de self, os métodos membros podem acessar variáveis membro da classe
- self aparece na lista formal de parâmetros, mas não ocupa a posição de parâmetro e não requer reuniões regulares
class Student:
name=None
def say_hi(self):
print(f"大家好,我是{self.name},欢迎大家多多关照")
stu=Student()
stu.name="张三"
stu.say_hi()
2. Crie objetos baseados em classes
class Clock:
id=None
price=None
def ring(self):
import winsound
winsound.Beep(2000, 3000)
clock1=Clock()
clock1.id='1112'
clock1.price=233
print(f"闹钟ID:{clock1.id},价格{clock1.price}")
clock1.ring()
clock2=Clock()
clock2.id='21122'
clock2.price=99.00
print(f"闹钟ID:{clock2.id},价格{clock2.price}")
clock2.ring()
3. Método de construção
As classes Python podem usar:_init_()
métodos, chamados métodos construtores
pode ser realizado:
- Ao criar um objeto de classe (construir uma classe), ele será executado automaticamente
- Ao criar um objeto de classe (construir uma classe), os parâmetros recebidos são passados automaticamente para o
_init_
método para uso
class Student:
name = None
age=None
tel=None
def __init__(self,name,age,tel):
self.name=name
self.age=age
self.tel=tel
print("student类创建了一个对象")
stu=Student("Cai",20,'13222222222')
print(stu.name)
print(stu.age)
print(stu.tel)
Notas sobre métodos de construção
4. Métodos integrados
__init__
O método construtor é um dos métodos integrados daPython
classe. Cada um desses métodos de classe integrados tem sua própria função especial. Esses métodos integrados são chamados de métodos mágicos
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __lt__(self,other):
return self.age<other.age
stu1=Student("张三",20)
stu2=Student("李四",17)
print(stu1<stu2)
print(stu1>stu2)
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __le__(self,other):
return self.age <= other.age
stu1=Student("张三",20)
stu2=Student("李四",20)
print(stu1<=stu2)#True
print(stu1>=stu2)#True
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __eq__(self,other):
return self.age == other.age
stu1=Student("张三",20)
stu2=Student("李四",20)
print(stu1==stu2)#True
Resumir
5. Embalagem
Três características principais da orientação a objetos: herança, encapsulamento, polimorfismo
encapsulamento
membro privado
Membros privados não podem ser usados por objetos de classe, mas podem ser usados por outros membros
herdar
class 类名(父类名):
内容体
passar palavra-chave
Pass é um espaço reservado comum, que garante a integridade da função ou definição de classe e significa sem conteúdo ou vazio.
cópia de
Redefinir uma propriedade ou método com o mesmo nome em uma subclasse
6. Sintaxe de anotação de tipo
var_1: int=10
var_2: str="caicai"
var_3: bool=True
class Student:
pass
stu:Student=Student()
my_list:list=[1,2,3]
my_tuple:tuple=(1,2,3)
my_dict:dict={
"caicai":123}
my_list:list[int]=[1,23,3]
my_tuple:tuple[int,str,bool]=(1,"cai",True)
anotação de tipo de função
7. Polimorfismo
Polimorfismo refere-se a: múltiplos estados, ou seja, ao completar um determinado comportamento, o uso de objetos diferentes resultará em estados diferentes.