Orientação a Objetos em Python - Associação de Classes

  Рет қаралды 7,355

Programador Lhama

Programador Lhama

Күн бұрын

Пікірлер: 31
@TulhoKay
@TulhoKay 2 жыл бұрын
Quem achou o exemplo meio abstrato. Eu fiz um bem didático. Ps: não fiz o uso de typing como no vídeo. class Cachorro: def latir(self): print('au au au') class Pessoa: def afagar_animal(self, animal): animal.latir() roberto = Pessoa() rex = Cachorro() roberto.afagar_animal(rex)
@luamdrs
@luamdrs 2 ай бұрын
Cara, tava meio perdida em POO e você tem me ajudado muito! Valeu demaisssss
@paulonascimento8194
@paulonascimento8194 2 жыл бұрын
Cara, você tem o melhor conteúdo de python do KZbin. Namoral mesmo. Muito obrigado.
@ProgramadorLhama
@ProgramadorLhama 2 жыл бұрын
Vlw pelo apoio! Tamo junto nessa!
@danilo_salve
@danilo_salve Жыл бұрын
Ótima aula, agora em 1080p
@MauricioDeMartino
@MauricioDeMartino 3 жыл бұрын
Conteúdo muito interessante. Sua didática é ótima! Venho assistindo 1 por 1. Vou lembrar de comentar em todos para ajudar a chegar na comunidade ! Já vi essa lista ser compartilhada em comunidades do Telegram tb. Merece uma audiência bem maior que muitos outros.
@ProgramadorLhama
@ProgramadorLhama 3 жыл бұрын
Cara, muito obrigado mesmo pelo apoio e pelo elogio. Fazer esses vídeos realmente está sendo divertido e tem sido uma terapia. Já me surpreende ter esse número de inscritos que tenho, pois não faço muito marketing kkkkk. Ainda temos muito pra acrescentar aqui no canal e vamos evoluindo juntos :)
@erikamedeiros_analytics
@erikamedeiros_analytics 3 жыл бұрын
Eu estou aprendendo tanto com seus vídeos, finalmente POO ficando legal de aprender!
@ProgramadorLhama
@ProgramadorLhama 3 жыл бұрын
Fico muito feliz em ajudar :)
@pastorjose9416
@pastorjose9416 2 жыл бұрын
Top bro. Conteúdo exclusivo. Tô gostando bastante.
@yes.marceloo
@yes.marceloo Жыл бұрын
Aquele momento em que sao 00:54 revisando matéria pra prova às 15:00. Seus vídeos estão ajudando muito!! edit: pensando em por que não encontrei essa playlist a 2 meses atras
@vilsonsouza2996
@vilsonsouza2996 Жыл бұрын
Valeu!
@alissongustavo49
@alissongustavo49 3 жыл бұрын
Parabéns pelo ótimo trabalho que está fazendo!!!! Sensacional....
@ProgramadorLhama
@ProgramadorLhama 3 жыл бұрын
Vlw! Tamo junto!! :)
@fernandoaugustodesousa5532
@fernandoaugustodesousa5532 3 жыл бұрын
Parabéns pelos conteúdos e didática. Aprendendo D+.
@ProgramadorLhama
@ProgramadorLhama 3 жыл бұрын
Tamo Junto Fernando! Espero Ester contribuindo :)
@marcobispo4877
@marcobispo4877 Жыл бұрын
class Interruptor: def __init__(self, comodo: str): self.__comodo = comodo def ascender(self): print('acesndendo {}'.format(self.__comodo)) def apagar(self): print('apagando {}'.format(self.__comodo)) class Pessoa: def acender_luz(self, Interruptor: Type[Interruptor]): Interruptor.acender() def apagar_luz(self, interruptor: Type[Interruptor]): interruptor.apagar def dormir(self): print('Fui dormir') lhama = Pessoa() interruptor_quarto = Interruptor('quarto') interruptor_quarto.ascender
@henriquewill2048
@henriquewill2048 3 жыл бұрын
Parabéns pelo conteúdo, sua explicação dando exemplos torna tudo mais claro.
@Relliarth
@Relliarth 2 жыл бұрын
Agora conseguimos ver os erros da Matrix. Quando a luz acende sozinha é interruptor.acender(), quando a gente acende é pessoa.acender_luz(interruptor). Quando a gente vê sobras sem pessoas é a mesma coisa. Então pode parar de ter medo de assombração, é só a programação orientada a objeto da Matrix que tá mal feita. 😅
@cristianoltfs
@cristianoltfs Ай бұрын
Excelente trabalho, parabéns. Uma pergunta, não fiz o import, utilizei type[Interruptor]. é isso mesmo? Muito obrigado...
@gambiando
@gambiando 2 жыл бұрын
Voaa rafa!
@gbcgiovanni6885
@gbcgiovanni6885 3 жыл бұрын
muito bom
@GuilhermeSantos-si7dr
@GuilhermeSantos-si7dr 5 ай бұрын
e aí Rafa, tudo bem? mano, na parte de criação do método para acender/apagar luzes, eu fiz da seguinte forma: def acender_luzes(self, interruptor: Interruptor): ... tem algum problema fazer assim?
@linuxeopoder
@linuxeopoder 3 жыл бұрын
Gostei muito da sua aula, tá de parabéns!!! mas tenho uma dúvida sobre sua programação, pq vc usa .format em vez de F-strings?
@ProgramadorLhama
@ProgramadorLhama 3 жыл бұрын
Puro gosto pessoal. Fica separadinho string de variáveis. Mas não tem problema usar F-string, fica mais parecido com outras linguagens tipo JS
@FranciscoACLima
@FranciscoACLima 3 жыл бұрын
@@ProgramadorLhama Concordo, format tem um visual mais limpo
@alexandresoarespereiralima886
@alexandresoarespereiralima886 2 жыл бұрын
professor estou usando python 3.10.2 e nesta aula o vscode marca missing positional argument "self" in call to "acender" of "TInterruptor"mypy(error) na classe Pessoa em def acenderLuz(self, interruptor: Type[TInterruptor]) -> None: print('acender a luz de Pessoa') interruptor.acender() exatamente neste ponto. o codigo executa normalmente mas manda esta mensagem
@ProgramadorLhama
@ProgramadorLhama 2 жыл бұрын
Nessa versão do Python, ele firma que não necessita desse Type para marcar a tipagem. Pode colocar TInterruptor sem o Type que acaba esse erro
@fabiolsmineiro
@fabiolsmineiro 2 жыл бұрын
Fala Rafael, parabens pela qualidade dos videos, vc e um exclente explicador. Vc pode dar uma olhada no meu codigo e fazer um comentario sobre a diferenca dos caminhos que nos dois usamos pra instanciar uma classe, por favor? Eu nao moro no Brasil, entao, estou lendo o livro Python Crash Course versao em ingles e o autor tem essa abordagem que eu estou aprendendo, porem, estou preocupado em aprender com qualidade, ja que estou estudando sozinho somente lendo o livro e assistindo videos em no KZbin. Considero vc um fera em Python, por isto me importo muito em ouvir seu feedback, sem pressa. Obrigado antecipadamente. class Car(): """A simple representation of a car""" def __init__(self, make: str, model:str, year:int) -> None: self.make=make self.model=model self.year=year self.odometer_reading = 0 def get_descriptive_name(self) -> str : long_name =(f"{ self.make} {self.model} {self.year}") return long_name def read_odometer(self) -> None: print(f" This car has {self.odometer_reading} milies on it.") def update_odometer(self, mileage) -> None: if mileage >= self.odometer_reading: self.odometer_reading = mileage else: print("You can't roll back an odometer.") def increment_odometer(self, miles) -> None: self.odometer_reading += miles def fill_gas_tank(self) -> None: print("Fill the gas tank.") class Battery(): """A simple representatio of a battery.""" def __init__(self, battery_size): self.battery_size=battery_size def get_range(self) -> None: bat_range = self.battery_size*3.466 print(f"This car can go about {bat_range} miles on a full charge.") def describe_battery(self) -> None: print(f"This car has a {self.battery_size}-kwh battery.") def upgrade_battery(self): if self.battery_size !=100: self.battery_size=100 class ElectricCar(Car): """A simple representatio of an eletric car.""" def __init__(self, make, model, year, battery_size=0): """Initialize attributes of the parent class.""" super().__init__(make, model, year) self.battery = Battery(battery_size) # *** Aqui eu instanciei um objeto para a classe Battery( ) ***. # self.battery.describe_battery() # *** Funciona assim. # my_tesla.battery.get_range() def fill_gas_tank(self) -> None: print("Electric cars does not have gas tank.") my_tesla=ElectricCar('tesla', 'model s', 2019, 75) my_tesla.update_odometer(100) my_tesla.read_odometer() my_tesla.fill_gas_tank() my_tesla.battery.describe_battery() # *** Funciona assim. my_tesla.battery.get_range() my_tesla_I=ElectricCar('tesla', 'model s', 2019) my_tesla_I.battery.upgrade_battery() my_tesla_I.update_odometer(100) my_tesla_I.read_odometer() my_tesla_I.fill_gas_tank() my_tesla_I.battery.describe_battery() my_tesla_I.battery.get_range() output my_tesla: This car has 100 milies on it. Electric cars does not have gas tank. This car has a 75-kwh battery. This car can go about 259.95 miles on a full charge. output my_tesla_I: This car has 100 milies on it. Electric cars does not have gas tank. This car has a 100-kwh battery. This car can go about 346.6 miles on a full charge.
@ViniciusSpreadAnalysisVSA
@ViniciusSpreadAnalysisVSA 2 жыл бұрын
Eu sou iniciante, mas percebi uma coisa no seu código, vc usa getters e setters sem proteger os atributos, ou seja, eles podem ser modificados de fora da classe, foi a única coisa que eu pude ver.... mas ainda sou novato, nem sei se isso faz diferença, o resto me parece ok!
@ViniciusSpreadAnalysisVSA
@ViniciusSpreadAnalysisVSA 2 жыл бұрын
quanto a sua questão, que era a diferença de instanciação, como eu disse, sou novato e não entendi a diferença entre a sua instanciação e a dele, a questão que eu vejo é de contexto, você ligou a suas classes por herança, ele ligou as classes forçando a tipagem (nossa nem sei se to falando certo, mas quem sabe ajuda...rsrs)
Orientação a Objetos em Python - Variáveis e Métodos de Classe
19:57
Programador Lhama
Рет қаралды 9 М.
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 9 МЛН
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 7 МЛН
Чистка воды совком от денег
00:32
FD Vasya
Рет қаралды 4,2 МЛН
Orientação a Objetos em Python - Introdução à Herança
12:39
Programador Lhama
Рет қаралды 6 М.
Orientação a Objetos em Python - Encapsulamento Privado
19:59
Programador Lhama
Рет қаралды 15 М.
Rotina de Um Analista de Testes (QA)
9:28
Izac Jr.
Рет қаралды 19 М.
Orientação a Objetos em Python - Interfaces
18:44
Programador Lhama
Рет қаралды 11 М.
Associação - Python Orientado a Objetos - Aula 41
16:17
Otávio Miranda
Рет қаралды 19 М.
Orientação a Objetos em Python - Polimorfismo
12:11
Programador Lhama
Рет қаралды 8 М.
Orientação a Objetos em Python - Classes e Contexto
25:11
Programador Lhama
Рет қаралды 18 М.
Orientação a Objetos em Python - Getters / Setters e Estados
11:22
Programador Lhama
Рет қаралды 11 М.
Classes - Python Orientado a Objetos - Aula 35
35:48
Otávio Miranda
Рет қаралды 168 М.