TLDR # Prevents a user from creating an object of that class # + compels a user to override abstract methods in a child class # abstract class = a class which contains one or more abstract methods. # abstract method = a method that has a declaration but does not have an implementation. from abc import ABC, abstractmethod class Vehicle(ABC): @abstractmethod def go(self): pass @abstractmethod def stop(self): pass class Car(Vehicle): def go(self): print("You drive the car") def stop(self): print("This car is stopped") class Motorcycle(Vehicle): def go(self): print("You ride the motorcycle") def stop(self): print("This motorcycle is stopped") #vehicle = Vehicle() car = Car() motorcycle = Motorcycle() #vehicle.go() car.go() motorcycle.go() #vehicle.stop() car.stop() motorcycle.stop()
This was really helpful, thank you. Though I think at 4:57 the error arose from the vehicle = Vehicle() line, not from the motorcycle = Motorcycle() line, as your commentary implies at that moment.
Thank you Bro, your explanations are just crystal clear. I've already watched several of your videos. Hope you achieve great success with your channel.
Cool. But it would be nice to comment on the video (or do a voice over) to let people know that error arouse from Vehicle being instatiated not from implementation itself. Other than that, great! Thanks!
Nice video. I think we need some additional information about the purpose of abstract classes as many of the comments have indicated. That is, is if subclasses cannot inherit from their parent, what is the purpose of the parent?
from abc import ABC,abstractmethod class Animal(ABC): @abstractmethod def eat(self): print("This is eating something") class Rabbit(Animal): def eat(self): print("This is eating grass")
You are very clear and objective. But I can't understand the use of abstract class if you can't instantiate it and the same functions are written bellow in other classes??? Thanks in advance.
I understand the implementation but what is the purpose of doing this? I’m not following what benefit was gained by going through this versus not defining an abstract class at all
I might've missed it, did he explain why you don't have to "super()" the methods you are overriding? Is this an inherent part of an abstract class, or am I missing something?
super() gets the child class access to the attributes from the parents method, it doesn't override anything, but is useful when your child class needs the same attributes, plus some new one. class Child(Parent) def __init__(self,attribute_1,attribute_2,attribute_3) super().__init__(attribute_1,attribute_2) # this will pull the first 2 attributes (of the same name) from the parent as for overriding, just defining the child's method using the same name as the one in the parent will override it for the child class. it looks for the "go()" method in the child class, before looking for the one from the parent. so it never actually encounters the abstract version of the method.
TLDR
# Prevents a user from creating an object of that class
# + compels a user to override abstract methods in a child class
# abstract class = a class which contains one or more abstract methods.
# abstract method = a method that has a declaration but does not have an implementation.
from abc import ABC, abstractmethod
class Vehicle(ABC):
@abstractmethod
def go(self):
pass
@abstractmethod
def stop(self):
pass
class Car(Vehicle):
def go(self):
print("You drive the car")
def stop(self):
print("This car is stopped")
class Motorcycle(Vehicle):
def go(self):
print("You ride the motorcycle")
def stop(self):
print("This motorcycle is stopped")
#vehicle = Vehicle()
car = Car()
motorcycle = Motorcycle()
#vehicle.go()
car.go()
motorcycle.go()
#vehicle.stop()
car.stop()
motorcycle.stop()
Thank you
Sir basically what's the use of it , for what. Purpose we're going to use it
thanks
p
p
Your intentions are clear - Simply educate and not show off smartness by complicating the content, which other channels do. Keep up your work.
This was really helpful, thank you. Though I think at 4:57 the error arose from the vehicle = Vehicle() line, not from the motorcycle = Motorcycle() line, as your commentary implies at that moment.
straight to the point, clear, and fun to watch. will binge all ur videos
Thank you, your explanations are clear and is easy enough to understand.
Thanks. Finally I understand now the importance usage of abstract
I got best content thanks for your best class bro☺️☺️
Thank you Bro, your explanations are just crystal clear. I've already watched several of your videos. Hope you achieve great success with your channel.
Really simple and straight to the point. Makes it easier to understand more complicated applications later on. Good job!
helped a lot on the basic understanding of the abstract class, which is exactly what I needed for my study, thank you! :)
Nice brief description of the essentials -- thanks!
best explanation of abstraction in python on youtube
This is soo Good of a video and explanation. Thank you, sir!
Great explanation an example, very easy to understand!
Thank you I was able to understand this concept thanks to your video.
Omg, can I just say you are saving my life rn? Thank you for this clear and concise lesson - thank you SO much.
Thank you very much. Wow!! Very simple, very easy, very clear explanation
Nice job! Easy to follow examples!
very understandable
Thank you for this video! Amazing explanation
Loving these short conceptual videos 😁😁❤❤
Great tutorial! Thanks a lot, bro! ;)
Very clear and concise explanation. Thank you very much for this!
Thanks a lot! Great explanation! Subscribed and going to take your python and javascript crash courses!
Really helpful! Thanks!!
this is such a concise and to-the-point explanation of ABC. I've yet to find a better one. and probably don't need to anyway. thank you
Thank you for this lessons
finally someone that is able to explain this clear and short! THX a lot!
Really nice, concise, and clear
Bless you for making this more clear than my professor.
I find 6-7 sources from internet to understand about Python abstraction but not understand!, just understand from this video. Thank you so much Bro.
A very clear explanation. Thanks!
Thank you sir!
Awesome tutorial, thanks
Now, it's clear for me. Thanks a lot, bro!
Great explanation bro! Thanks!
Simple & to the point!
Thank you for the video dude,It was very helpful and informative. BTW my Teacher linked this video in our Python course as a example
I'm really liking your python tutorials
Thanks so much I have a test for my Python OOP course tomorrow on this you saved me.
Great video. To the point. That's how the content should be created. Thanks!
Excellent explanation, thanks!
excellent explanation
keep it up
Nicely explained! Thanks :)
It's easy to understand the concept.
Very nice and useful video
It's amazing!Thank you
Best explanation.
More content on abstraction and encapsulation while using dataclasses please
Thanks alot ❤️
Wow!
Great discussion Bro
Best example
You teach nice
awesome video
Lovely
Amazing
Great!
great video !
Thanks alot.🙏
great video!!
Thank you!!!
Спасибо, видео помогло разобраться!
cool video bro... ps: Turn of the cc... it is hilarious!
Ya. Haha🤣.
Thank you Bro!
I am doing python at university and this is the best video Ive ever watch
you are a genius bro. thanks 🙂
You are just amazing bro
Thank you
Cool. But it would be nice to comment on the video (or do a voice over) to let people know that error arouse from Vehicle being instatiated not from implementation itself.
Other than that, great! Thanks!
NIce!
quick and dirty.
nice, thanks!
for the algorithms. ty brother
Hi bro nice video
Thanks
Thanks Bro!
love u
supporting the channel
thanks bro
Thanks!
Instant like for mentioning the need for speed:)
Best tutorial I have ever seen
thaaaanks
nice
Clear as water!!!
Sir basically what's the use of it , for what. Purpose we're going to use it
Nice video. I think we need some additional information about the purpose of abstract classes as many of the comments have indicated. That is, is if subclasses cannot inherit from their parent, what is the purpose of the parent?
Can someone explain the reason an abstract class would be needed if the child class' methods would be explicitly written anyway?
from abc import ABC,abstractmethod
class Animal(ABC):
@abstractmethod
def eat(self):
print("This is eating something")
class Rabbit(Animal):
def eat(self):
print("This is eating grass")
obj=Rabbit()
obj.eat()
You are very clear and objective. But I can't understand the use of abstract class if you can't instantiate it and the same functions are written bellow in other classes???
Thanks in advance.
best BRO :)
thank you!
I understand the implementation but what is the purpose of doing this? I’m not following what benefit was gained by going through this versus not defining an abstract class at all
thank you bro !
ty bro
I might've missed it, did he explain why you don't have to "super()" the methods you are overriding? Is this an inherent part of an abstract class, or am I missing something?
super() gets the child class access to the attributes from the parents method, it doesn't override anything, but is useful when your child class needs the same attributes, plus some new one.
class Child(Parent)
def __init__(self,attribute_1,attribute_2,attribute_3)
super().__init__(attribute_1,attribute_2) # this will pull the first 2 attributes (of the same name) from the parent
as for overriding, just defining the child's method using the same name as the one in the parent will override it for the child class.
it looks for the "go()" method in the child class, before looking for the one from the parent.
so it never actually encounters the abstract version of the method.
@@Craulback Thanks for the explanation
Thx bro!
Thank youu!!!
I'm so freaking stinky it's insane and incomprehensible how much I'm smelly
In python can you explain the difference from Abstract class and Interface?