Object Oriented Programming with Python - From Beginner to Advanced

preview_player
Показать описание
Object Oriented Programming is an important concept in software development. In this complete tutorial, you will learn everything related to OOP, from the very basics, to very advanced topics like deskriptors and metaprogramming.

Timestamps:
0:00:00 Introduction
0:02:44 Basics
0:15:30 Magic methods
0:40:50 Inheritance
0:52:30 Dataclasses & Enums
1:07:21 Multiple Inheritance
1:15:13 Getters & Setters
1:31:31 Deskriptors
1:46:02 Slots
1:51:41 Abstract Base Classes
1:56:19 Metaprogramming
2:08:41 Design Patterns

#python #objectorientedprogramming
Рекомендации по теме
Комментарии
Автор

Finally completed watching the video. Good OOP tutorial. The new thing for me was slots. We dont see they are widely implemented and probably that's why not many tutorials cover them. Again, thank you for creating this comprehensive tutorial.

saurabhjain
Автор

I enjoyed this course very much. As a beginner I felt like this was the perfect balance between thoroughness and breadth. Of course, some of the concepts I won't be able to execute on my own nor perfectly follow their logic/sequence with complete understanding, but now I have a strong OOP framework in my head that I can slowly build upon with practice. Great teaching style too- if you release any more videos on topics I'm trying to learn I will definitely watch them. Many thanks

LawrenceAaronLuther
Автор

Great content, you are a wonderful teacher

pratiknarendraraut
Автор

Concepts are well explained. Thank you. You've a new subscriber

ernie
Автор

Good course as a refresher if you haven't used python's OOP for a while. For beginners it could be a lot.

maximus-the-merciful
Автор

thanks a lot for the great video! I especially like the Design Patterns part. Just a feedback: I wish you first explained what you want to achieve with each example and then implemented the code and briefly went over why each element is necessary. For example why the super class Observer is needed.
Coming from a C programming background, every problem I encounter during coding, seems like it will be solvable by functions. I never understood the real need of making classes. It would be nice to make another video going a bit deeper in design patterns part, explaining the chain of thought of "why" you choose classes for specific problems. Thanks a lot!

ChadieRahimian
Автор

Very interestign video one question so far: 38:00 you talk about how to add archers to company. When you add them by the + operator the company's size argument does not seem to work. Although you specify a comapny just with 5 archers, even if you add 6 the company adjusts and you never get notified that the maximum number of archers has been reached. Even when the iter and next are added if you have more than 5, they will all appear int he print. Any ideas how to correct it?

pianotita
Автор

I hope the __hash__ method could be explained clearly with its application. What they are for? Thanks.

economist_roderick
Автор

Will the video still be available on your German channel? I need to brush up on my Python skills. :-)

yt
Автор

im still pondering what would be the usecase of __hash__ /

ashishjohnsonburself
Автор

in 24:11 why self.arrows == self.arrows?? for the rest you did self.(variablename) == other.(variablename)

ham
Автор

Well done but you fail to get into the motivation and intuition behind using OOP in the first place. This video is great if you already knew the "point" of using OOP and want to do it in Python, but there is little knowledge shared about thinking in terms of OOP, breaking your program down in a way that works with OOP, and in general the reasoning behind the process. Perhaps a topic for a new video? It would be a nice complement to this OOP "inplimentation" video. Anyway, many to to this wonderful German (or Austrian?) teacher!

fluffykitties
Автор

Please upload odoo software tutorial Please

dineshkumarsudhakar
Автор

from abc import ABC, abstractmethod

class AbstractCharacter(ABC):

@abstractmethod
def walk(self):
pass

@abstractmethod
def run(self):
pass

@abstractmethod
def jump(self):
pass

class Mario(AbstractCharacter):

def __init__(self, name, skills) -> None:
super().__init__()
self.__name = name
self.__skills = skills

@property
def name(self):
return self.__name

@name.setter
def name(self, name):
self.__name = name

@property
def skills(self):
return self.__skills

@skills.setter
def skills(self, skills):
self.__skills = skills

def walk(self):
print("Mario is walking")

def run(self):
print("Mario is running")

def jump(self):
print("Mario is jumping")

mario = Mario()
mario.walk()
mario.run()
mario.jump()

kvelez