Object Oriented Programming with Python - Full Course for Beginners
Object Oriented Programming is an important concept in software development. In this complete tutorial, you will learn all about OOP and how to implement it using Python.
💻 Code: github.com/jimdevops19/PythonOOP
🔗 Tutorial referenced for a deeper explanation about __repr__: • Python Magic Methods |...
✏️ Course developed by Jim from JimShapedCoding. Check out his channel: / @jimshapedcoding
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Getting Started with Classes
⌨️ (0:12:11) Constructor, _init_
⌨️ (0:50:35) Class vs Static Methods
⌨️ (1:13:22) Inheritance
⌨️ (1:30:14) Getters and Setters
⌨️ (1:51:00) OOP Principles
🎉 Thanks to our Champion and Sponsor supporters:
👾 Wong Voon jinq
👾 hexploitation
👾 Katia Moran
👾 BlckPhantom
👾 Nick Raker
👾 Otis Morgan
👾 DeezMaster
👾 AppWrite
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
Thanks a lot for posting this, FCC! ❤️
You are an amazing teacher, thankyou for teaching me flask your market app really helped me 🙏🏻
You are the amazing one.Thanks for the great course.
No, thank YOU!
@@mahirrahman4253 Thanks a lot!
@@flammabletfm3405 You are welcome!!
Only today and after watching this tutorial I understand "self" in python!
the same here
He makes so easy to understand
you are a "self" learner
I just think of it as this
Am also looking to understand self... Hope I do
I'm only 20 minutes in and already several concepts that were blurry before are now crystal clear to me. Excellent video!
plus the benefit of being taught by Count Dracula's nephew
@@hgm8337 noooo way hahahahahahahaha
@@hgm8337 😭😭
No joke - he's explained things in the first 20 mins that I've never heard anywhere else - yet they are true fundamentals that are really helpful to learn!
00:04 Understanding object oriented programming is important for software developers. 07:57 Creating a method to calculate the total price of items 23:21 Understanding constructors and best practices in classes 31:11 Learned about constructor and working with different attributes 45:44 Using a for loop, we can print the names of all instances 53:38 Read CSV file and instantiate objects with class method. 1:09:32 Create a separate class named 'Phone' that inherits from the 'Item' class 1:17:02 Inheritance allows creating child classes that inherit attributes and methods from parent classes. 1:31:54 Create read-only attributes in Python using the property decorator 1:39:20 By adding double underscores to attribute names, access to those attributes is prevented outside of the class. 1:54:40 Encapsulation and abstraction principles are applied in object-oriented programming. 2:03:06 Inheritance allows code reuse across classes
I'm only up to the 45 minute point so far, but already I am very grateful for this tutorial. Thank you so much!
this fucking boosted me to the next level
For those who didn't understand the static method, def is_integer(num) = Our Function & num.is_integer = Built-in Function. is_integer() is a popular built-in function that checks if a floating number is actually an integer. As an example, 7.0.is_integer() will return True whereas 7.3.is_integer() will return False. So as to avoid confusion, let's just change Our Function name to def check_integer(num) 🙂✌
Thank you sir!!
I was scratching my head over this so much... all logic was flying out of my brain! Thank God for a helpful community! Thank you!
This comment needs to get pinned or something for newcomers
Yup u cant name a function with a built in function name
Thx
This guy is amazing. He has taught me Selenium, Classes and I'm sure many more things in the future. Keep up the good work Jim, you're a beast!
Sir, thank you for this absolutely fantastic run through of object oriented programming. I was struggling with some of these concepts in using python to build a Django website, but this tutorial cleared up a TON of information. Very well done, I along with 100K+ others, are incredibly grateful that you took the time to put this together to clear up some confusing concepts.
Less than 10 minutes into the tutorial and I understand what the class is. Some of these free tutorials teach better than actual courses we pay money for
I've been learning and coding Python for a little over a year and have never fully understood the __init__ method until I saw this video. You rock!
Just completed the whole video and this is hands down the best object oriented programming course I've ever come across. I've been trying to understand what exactly OOP is all these days by reading blogs and going through different tutorials. Nothing gave me as much clarity as this video did. Thanks a lot for the great work and for giving this out for free!
Loved It! I have been in a 4-Year CS program and learned the OOP concepts in different lectures. Probably this one is the best among all the lectures/tutorials I have taken for OOP till now.
Best explanation on OOP on KZhead. He doesn't skip anything. It finally makes sense 😊
I find myself especially loving the structure of this OOP tutorial, it comes from a Funtional programming aspect and gradually lead you into OOP with examples, as oppose to other tutorials where they directly introduce you to concepts like inheritence/settters etc.. This makes my understanding of OOP much more clearer and structred. Big thanks to FCC and the lecturer!
More better than my comment!
Very practical and understandable take on OOP in python. Greatly recommended to people with a beginner level knowledge of python and need to add OOP to their python tool kit.
This tutorial was hands-down the best I've ever watched regarding the essential concepts of object-oriented programming. You clarified so many of my unanswered questions. Thanks a million!
This is the most comprehensive and friendly tutorial on Python OOP I have seen so far. Thanks for this Jim
Best intro to OOP so far. Explained so well. Thank you so much for this excellent course!!
Simply perfect ! Though I was doing revision but it helped me in learning the concepts easily.
Great course! This took me from having a basic knowledge of OOP to understanding the logic of how it all works much more! Excited to keep going deeper with these topics!
Wow, he wasn't lying . He really explains it well; you wouldn't need another tutorial .
Absolutely fantastic. Definitely, the best introduction to Python OOP I have seen so far.
1:08 "is_integer" is a float method, since the name of the written method and the float method name are the same, there is a misunderstanding as if the method is calling itself again. It was a confusing example. It took me a long time to understand and figure out what was going on. 7.0.is_integer() return True :)
same
Thank you very much . I was mulling over this doubt for a long time.
Thanks for this comment alper! I assumed it wasn't recursion but was scanning the comments for this confirmation.
Thanks, was wondering the same
Damn, thank you so much. I was really wondering how a recursive function could work in this case and I was looking for people equally confused in the comments. It turns out it's easier than that :D
Thank you for such a clear and detailed tutorial! This helped deepen my understanding of these concepts. Absolutely worth watching!
1. In the run validations to arguments part, if you aren't getting an error when you use an integer as the name, type in assert type(name) == str. This will not accept anything other than an integer as the name. 2. Make sure you have no spaces between the list in the items.CSV file. Its a minor thing but gave me a headache since I couldn't get past that for a while. Then do the normal int(item.get()) then it works fine. Finally most of the issues I encountered were as a result of not looking at the code long enough. If you encounter a problem, make sure to re watch the part where he DOS it and make sure you got it correct. This happened to me at the Len part and a few others. Finally if you encounter s problem not stated here, then copy the error and paste it in your browser. This shows a stackoverflow page first where you can figure out what's wrong. Hope this helps you and you don't have to go through the headache I did when solving those lol
you are a legend
yeahhhh was facing the same headache...thank u very much!!!!
true saviour
#2 gave me such a headache as well. i think i would still be sitting here trying to figure it out if i didn't see your comment. thanks!
Man thx a lot!!!
For anyone who also installed the csv plugins but the "Table Editor" button didn't appear: you have to go to File | Settings | Editor | File Types, go to "Text", and then add *.csv to that file type. Confirm it and you're good to go. =}
It's really really useful for begginers like me to have a tutorial builded from the scratch, instead of just downloading code from an external source and all of a sudden try to understand whats happening on those 50 lines of code. Thx
Nice profile picture!
This is, by far, the best tutorial I've watched in a long time. Man have you got didactics for days. Congrats!
The practical way of explaining and the gradual pull into the concept was awesome. I am finally understanding. Thank you so much
20 mins in and so many concepts are made clear and so quickly and efficiently. Thanks the instructor and FCC.
Great explanations! I like that you clarified certain aspects of OOP that are hardly ever mentioned in other OOP courses. Thank you!
Thank you so much. I've been having such a hard time for hours trying to understanding classes and methods. This was perfect.
A perfect course if you know the general concepts but they are not clear enough. Electrifying! Good Job
Great course, I liked the order of subjects so everything made sense while learning OOP. Many thanks!
Thank you very much, For the last month I was wandering on the internet to understand OOP, with no success now it is crystal clear. Une fois encore, merci
The whole concept of OOP is explained in a structured and easy to understand way. I am a beginner and learnt a lot from this. Looking forward to learn more from your videos . Thankyou
ABSOLUTELY FANTASTIC!!! Thank you so much Jim. I followed this tutorial line by line and learnt so much. I owe you this new beginning of my life.
Thank you so much, I was looking forward for such a course
He is great explainer bring him back again on this channel !!! ✨👏🔥💯
A very enjoyable comprehensive lecture, the study material is delivered in a clear and adequate manner
finished in one sitting after finishing a similar course on datacamp and I understood everything perfectly. thank you so much man
man it's so amazing. You are so good at explaining. Thank you soo much for get me out of the confusions. ❤️🙏🙏
This was insanely helpful. Easily understood, clear examples.
Learned a lot from this course, helped me to understand OOP better. Thank you so much, Jim and FCC.
this made more sense to me than any other OOP tutorial I have ever watched. Thank you so much
I have to admit that when I heard the presenter's thick accent, I was worried, but I've just finished the entire video, and I must say that this was an EXCELLENT presentation. Turns out dude is very easy to understand. Speaks clearly, slowly, concisely, and precisely. Doesn't just superficially intro you to each topic--he really takes the time to explain the principles. A+! THANK YOU for taking the time to create and share this with the world! This was basically my into to object oriented programming and I really do feel like I've learned a whole lot after this 2+hr video!
I appreciate such a comment a lot. Working on a smooth accent has been something I am working on a lot and I am happy you found your way to complete the entire video! Keep going :)
@@jimshapedcoding I think your accent makes the video nicer to listen to
I was trying to learn oop concepts for a very long time and I was having a very hard time learning this then found this video, still in the 1st chapter __init__ and most of the things I was having hard time with got very clear. Thanks for this, I will always remember you. FCC is doing great work finding these high quality videos .
Me too everyone else was giving shitty explanation or explanation that just doesnt make sense it seems they have forgotten their target audience are intermediate level or lower and they cant understand it by the general explanation which are given to people who knows how to do oop
Thank you for this tutorial. I've participated in a number of courses and by far this is the best object oriented programming course I've seen.
Thank you so much for this amazing tutorial! I’ve only been learning python for a few weeks but this helped me understand many core principles of OOP. Not going to lie, a little of this was still over my head but I’ve saved this video so I can watch it a few more times of the next few months. Thanks again
OMG!!! I am finished only 23:30 and this so amazing!! Looks like this video is going to be in my permanent youtube storage vault!:):) I already have decided to watch it more than once. Already cleared up a few critical concepts that I was struggling with. You have an amazing explanation power.
Yes! I've been chipping away at it for 3 days and just finished. SO GLAD I FOUND THIS. I want the channel to know how awesome they are!
By far the best OOP python I ever found, clear, easy to understand, ensure that everything is crystal clear.
That's because you didn't look hard enough. It's terrible compared to others.
@@8SecSleeper then suggest a better one for learners to watch better ones.
@@8SecSleeper still havent suggested better?
@@mgm8075 If you can't find the better videos, then you shouldn't be learning programming. It's not for you.
@@8SecSleeper instead of typing all that out you could've just shared the video you claimed was better. just say you're too lazy.
I'm now halfway through, but this is an excellent video for learning OOP, always struggled with it, but this one is just great, so thanks a lot!! Learned so much from it. EDIT: I've completed the whole video by now - what a journey, thank you so much for this course!!
This is gold. Jim is awesome! For sure in my top 3 best teachers. So easy to understand.
Amazing OOP training, alot of concepts clear by now for me
Great tutorial. I was a bit confused when you built your staticmethod is_integer at first. But then I realized float has a method built into it also called "is_integer", which will return true if the float ends in .0. Once I figured that out it made sense to me. Hope this helps someone who is confused by the same thing
Thank you, I have scrolled down the comments to see if someone had the same issue with this part - you helped a lot here :)
I was about to ask the same, thank you! I think it was a bad idea to name the static method 'is_integer' since there already exists a float method with the same name.
OOP has always been a sticking point for me, but thanks to this in-depth tutorial, it is all starting to make sense. Thank you FCC for posting this!
20 minutes in and the gentleman has clarified all the questions I had regarding OOP. This makes so much sense.
Thank you very much Jim, this helped me a lot to understand OOP
Awesome video! I'm half-way into it, and I've already learned more than I learned in an entire OOP class on another platform! Thanks so much!
I was Struggling to understand the concept of Class through tutorials, but this tutorial helped me to really understand well. Thanks a lot!
The explanation on this tutorial is very clear and to a point. I understood lots of things, which was a bit of a magic before this video. Thank you very much and keep posting fruitful videos
I appreciate this! Thanks
Я просмотрел все 2 часа этого курса, и научился читать код, и понял общие правила ООП. То что раньше было сложно понять, понимать стало гораздо проще. Вместо повторения \ дублирования кода, можно написать код лаконично, и он будет выглядеть очень аккуратно, это очень круто. Мне жаль что на просторах интернета, на Русском сегменте, вот таких полных курсов очень и очень мало, но найти ваш канал было просто волшебно. За 2 часа, начиная от самого простого, переходя постепенно к пониманию того что происходит, с указанием что откуда наследуется и передается, в общем я очень рад что эта информация очень полезна для меня. Осталось только научиться делать это самостоятельно, и продумывать код и его логику. Жаль у нас не было уроков программирования, да и преподаватели обычно не умеют доносить информацию понятным и простым языком, объясняя сложные вещи простым языком. Благодарю вас.
You are welcome! :) I hope there will be more Russian lecturers in KZhead to help you learn even better!
Now i am in this video for 50 minutes and I got to say, this video is golden. This video is like if you want to digest 1000 pages of content in one video. Truly Awesome.
This is a top notch crash course. Simple and short to start building stuff. Thank you!
waiting for this from a long time , thanks :)
The thing that most tutorials miss is an indepth explanition of the logic of how things work. Fortunately, this tutorial does not skim on explaning the logic and also giving examples of use cases. Thanks Jim!!!
I think for learning oops its better to reas some basic books
@@chandranshpandey1929 read*
I have already watched and downloaded your videos on my computer. A great course thank you Jim
Theory intensive but very crisply explained! Excellent video!
What a brilliant course! Thank you :)
This is just the thing i was looking for... Thank you very much ❤
What an excellent tutorial! Amazing man. You are a wonderful teacher. Hats off to you. God bless you!
This was absolutely excellent. Right on the point, no fluff - perfect for a refresher (or rather clarification), but I can absolutely see this being accessible to absolute beginners. Really nice, thanks a lot. :)
The is_integer function name almost confused me. is_integer is a method on its own in python so I thought you were calling your defined function inside the function itself. I'm clear now, made me research more and I'm happy about that. An awesome video by the way, I've mastered OOP basics from this. Thanks so much.
It got me confused as well. Thanks for the clarification 👍
Oh wow. I spent like 15 minutes trying to figure out the code. Thanks! 😅
Jesus, this was super confusing. I guess he could have called his staticmethod like "check_if_is_integer" to make a difference from the inbuilt function. Super awesome video anyways!
@@StarFury2 1:09:00 One thing which you could also observe was that there were no parameters passed when calling the is_integer() {in line 45}, so no way would the is_integer method of the item class would be called, as that would require passing num parameter. But yeah, this was confusing at first glance!
Thank you so much for this extremely useful tutorial.
THANK YOU for making your font size large enough to read on a tablet. So many channels don’t do this.
I really appreciate the VID, it was very good, I spend the last month been clueless about the lections of my teacher, and I also watched a bunch of vids about classes, and I couldn't get the comprehension I got from your explanation, really good content !🤙
Watching at 0.75 X. This is by far the best tutorial on OOP. Hands Down.
1:08:52 The name "is_integer" was a bit confusing because same method exists for 'float' class so in first IF statement num.is_integer() has nothing to do with the is_integer function that has been created in this code. That is_integer() method is pre-defined for the float class and that is only there to check if the num is a float or not and returns TRUE.
Yes. Exactly. Great tutorial but this was a flub in presentation. Thanks for clarifying.
@@jimbowayoutub2 Can you please explain this, 01:07:07 if isinstance(num, float): #Count out the floats that are point zero return num.is_integer() what happens when we return num.is_integer()
@@akhilmachaan5010 Hi. The instructor added a static class to his Item class called is_integer() that returns True if num's type is integer and false if it's a float by using the isinstance() method built into python. But that alone would still interpret a number like 5.0 as a float just because it has a decimal. He wants his method to return True in such cases. Now because num is float he can call the is_integer() method that is *built into python's float class* ( same name but different function) One is created by Jim. The other built into Python's float class. Hope that helps.
Such a lovely way to explain the OOP. Practical project based examples makes it even more interseting. Thank you
Thank You @JimShapedCoding 🙏 As you said at the beginning of the tutorial, this is gonna be my last search for OOP. I was looking for someone like you [my whole life😀] to explain the OOP to me. Most tutors just write the codes and never explain what is self or what is the point of using the classes and... You showed in detail why I should do it, and how I should do it. I can't learn anything off by heart, thus, I need to understand everything, so I could use it in the right way, and you man, helped me to understand. Thank You.
God bless this man 🙏
The best OOP video ive ever seen. I would have failed without you LMAOO my profs could never compare.
It's an excellent video with a clear-cut explanation for a learner like me. I have watched many videos for understanding these concepts finally this one made me understand them clearly.
Literally the Best OOP tutorial I've found. Thanks so much. Subbed to both.
Hey, For anyone here who might be struggling with a 'NoneType' error when trying to call ur CVS file and convert it into a list, go back and make sure there are no spaces in between attribute names. Remove all extra needed spaces example: should be: name,price,quantity not: name, price, quantity
You saved my day!
YOU'RE A GOD!
🤩
Just what I needed ❤️
Same
this is the best OOP video i have ever watched. i also got confused with the concepts used in OOP such as init,self and how to use them and what is the actual mean behind these concepts now has been revealed. thank you very much for your great content.
I've learned so much from this video, I really feel this has taken me to the next level of my knowledge in Python. Thank you!!
Learned so much from single video thanks alot 👏✨💯🔥🔥
kzhead.info/tools/yoFQsVztx2oHWq14nY8A6A.html
Thanks!
I know basic Javascript, basic PHP, basic Java and A lot of Python. Still, I was never able to wrap my head around OOP concepts. This video made every sing;e thing crystal clear. Since I saw this video a while back, I have been writing a lot of OOP Python code. And believe me, it helps a lotttttt
Thanks a lot! Great Job. Keep It Up. I am new to python but the way you explained all the details of OOP in Python is terrific. Thanks again for sharing your knowledge and uploading this video.
I think naming that is_integer(num) method was wrong because already there exists an inbuilt method called is_integer() that can be called upon floats.... All this while I was thinking of recursion....
Haha. Yeah. Took some time to get it cleared for me.
I didn't understood what happened there ... To me it seems to be an infinite loop
Hi, Thanks for posting !!! , there is a catch at least in unix ( !!! items.csv file has spaces in front of columns price, quantity which triggers an error : price=int(item.get('price')), TypeError: int() argument must be a string or a number, not 'NoneType')
Having this same error with the NoneType as well
same, but i removed the spaces from my csv file and the error went away. although now, i'm not able to see the objects in the console though. when i run the code Item.instantiate_from_csv(). it's blank after the ...python.exe ...tutorial.py. still trying to figure it out ... so not actually sure if the items in the csv are being created as objects in my program
when i run print(type(item.instantiate_from_csv())) it returns --->>> that doesn't sound right! has anyone faced a similar issue? better still, have any ideas?
@@hkoranteng1 It is because we are not returning anything in the instantiate_from_csv method. You should try printing Item.all to know if the ob jects has been instantiated.
@@hkoranteng1 Thank you mate. I was confused where I was being wrong, and I read your comment about spaces. Fixed the error and I can now proceed with the tutorial. Thanks.
This guy is very good with explaining and teaching. I really learnt a lot from about OOP that had been confusing to me. Thank you so much
Thanks for this course! It's been really useful as a complement to my Software Engineering studies.
I'm fluent at OOP in Java and now I feel stuck when doing it in Python lol
Shalom!
watching it now 2 yrs after it was published. Super amazing. Thanks buddy.
i am a self taught programmer and previously ive tried to learn linked list and got totally lost and confused. i was told i should learn OOP first. my friend had a syllabus for a OOP class, but i didnt want to spend threee months on it so i went onto this video and i learned so much. took about 3-4 days digesting information. you broke down the steps in a way thats easy to digest and remember. although this topic has a lot of information, now i see all i need is to practice these concepts often and ill get it. you have explained in two hours a whole entire syllabus that would take aquarter, which is about 3 months. thank you so much
I really appreciate this one, thank you and I am very happy I saved your time :)