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!
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
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
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!
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
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!
How good a tutorial it's it depends on the individual also, some might find this a great tutorial and understand everything in the way it was explained, others not. Even the voice of the guy who explains matters if you believe me or not
@@foray3573 Can You please Explain this Code 59:48: @classmethod def instantiate_from_csv(cls): with open('items.csv', 'r') as f: reader = csv.DictReader(f) items = list(reader) for item in items: print(item) also, this Item.instantiate_from_csv()
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.
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.
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
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
Я просмотрел все 2 часа этого курса, и научился читать код, и понял общие правила ООП. То что раньше было сложно понять, понимать стало гораздо проще. Вместо повторения \ дублирования кода, можно написать код лаконично, и он будет выглядеть очень аккуратно, это очень круто. Мне жаль что на просторах интернета, на Русском сегменте, вот таких полных курсов очень и очень мало, но найти ваш канал было просто волшебно. За 2 часа, начиная от самого простого, переходя постепенно к пониманию того что происходит, с указанием что откуда наследуется и передается, в общем я очень рад что эта информация очень полезна для меня. Осталось только научиться делать это самостоятельно, и продумывать код и его логику. Жаль у нас не было уроков программирования, да и преподаватели обычно не умеют доносить информацию понятным и простым языком, объясняя сложные вещи простым языком. Благодарю вас.
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!!!
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.
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
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.
One of the BEST python tutorials i have ever seen. Most just show you the code and expect you to understand it but in this video he explains EVERYTHING thank you so much, i have learned a ton about python because of you!
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 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
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.
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!
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
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.
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 :)
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
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!
the definitive follow-up guide after completing the FreeCodeCamp Scientific Computing with Python course. If you're struggling with the Budget App project, please watch this. Thanks again Jim, you're a real one.
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!
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 :)
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. =}
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.
@@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.
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. :)
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 !🤙
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
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
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 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.
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')
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.
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....
Please rename the video title, it is very misleading. This maybe a good course for people who already know OOP to refresh their concepts and understand them better but is absolutely not for beginners. There is no clear guidance on *why* anything is being done, there is neither flow nor structure, just adhoc command giving and typing. As a true beginner in OOP, not once was it clarified why this is needed (in python for eg) to begin with, rather than write out flat code. As this was an assigned video for a course, I had to unfortunately drag myself through it. But everything I learned about OOP, i got from reading blogs online and other videos that actually make the effort of telling why something is being done, what the end objective is, and how writing code the way it was written here helps us do that better.
as the one learning different things and trying different approaches all the time , I would say it was very informative and most importantly not boring and out of topic and also was concise Thank you
At 1:32:33 I got this error when trying to write: print(Item.instantiate_from_csv()) print(Item.all) error :in instantiate_from_csv with open("items.csv", "r") as f: FileNotFoundError: [Errno 2] No such file or directory: 'items.csv'
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.
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!!
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
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!
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
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
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!
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'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!
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!
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!
By far the best OOP python I ever found, clear, easy to understand, ensure that everything is crystal clear.
@@8SecSleeper then suggest a better one for learners to watch better ones.
@@8SecSleeper still havent suggested better?
@@8SecSleeper instead of typing all that out you could've just shared the video you claimed was better. just say you're too lazy.
How good a tutorial it's it depends on the individual also, some might find this a great tutorial and understand everything in the way it was explained, others not. Even the voice of the guy who explains matters if you believe me or not
@@foray3573 Can You please Explain this Code 59:48:
@classmethod
def instantiate_from_csv(cls):
with open('items.csv', 'r') as f:
reader = csv.DictReader(f)
items = list(reader)
for item in items:
print(item)
also, this
Item.instantiate_from_csv()
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 TH-cam. He doesn't skip anything. It finally makes sense 😊
Thanks!
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!
Wow, he wasn't lying . He really explains it well; you wouldn't need another tutorial .
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
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!!!
Я просмотрел все 2 часа этого курса, и научился читать код, и понял общие правила ООП. То что раньше было сложно понять, понимать стало гораздо проще.
Вместо повторения \ дублирования кода, можно написать код лаконично, и он будет выглядеть очень аккуратно, это очень круто.
Мне жаль что на просторах интернета, на Русском сегменте, вот таких полных курсов очень и очень мало, но найти ваш канал было просто волшебно.
За 2 часа, начиная от самого простого, переходя постепенно к пониманию того что происходит, с указанием что откуда наследуется и передается, в общем я очень рад что эта информация очень полезна для меня.
Осталось только научиться делать это самостоятельно, и продумывать код и его логику. Жаль у нас не было уроков программирования, да и преподаватели обычно не умеют доносить информацию понятным и простым языком, объясняя сложные вещи простым языком.
Благодарю вас.
You are welcome! :) I hope there will be more Russian lecturers in TH-cam to help you learn even better!
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*
20 mins in and so many concepts are made clear and so quickly and efficiently. Thanks the instructor and FCC.
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.
Great explanations! I like that you clarified certain aspects of OOP that are hardly ever mentioned in other OOP courses. Thank you!
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 :)
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.
One of the BEST python tutorials i have ever seen. Most just show you the code and expect you to understand it but in this video he explains EVERYTHING thank you so much, i have learned a ton about python because of you!
He is great explainer bring him back again on this channel !!! ✨👏🔥💯
20 minutes in and the gentleman has clarified all the questions I had regarding OOP. This makes so much sense.
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 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
This tutor is so understandable. He's really give the essence of the topics with short briefs. Thank you
I finally completed these Object oriented of python, i would recommend every body to watch these to have a good grasp of concepts
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!
Clean and good explanations. Хвала!
The best OOP video ive ever seen. I would have failed without you LMAOO my profs could never compare.
This is the most comprehensive and friendly tutorial on Python OOP I have seen so far. Thanks for this Jim
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.
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
Best intro to OOP so far. Explained so well. Thank you so much for this excellent course!!
This is, by far, the best tutorial I've watched in a long time. Man have you got didactics for days. Congrats!
Simply perfect ! Though I was doing revision but it helped me in learning the concepts easily.
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!
A perfect course if you know the general concepts but they are not clear enough. Electrifying! Good Job
the definitive follow-up guide after completing the FreeCodeCamp Scientific Computing with Python course. If you're struggling with the Budget App project, please watch this. Thanks again Jim, you're a real one.
Watching at 0.75 X. This is by far the best tutorial on OOP. Hands Down.
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!
Absolutely fantastic. Definitely, the best introduction to Python OOP I have seen so far.
THANK YOU for making your font size large enough to read on a tablet. So many channels don’t do this.
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 loved your course, great stuff.
Anyone looking to learn OOP in python, watch this video straight.
Thank you very much
This was insanely helpful. Easily understood, clear examples.
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.
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. =}
I am nodding my head like crazy to say yes... with tears in my eyes... i love this video... its the best!!!!!
Great course, I liked the order of subjects so everything made sense while learning OOP.
Many thanks!
It was at the 18:00 mark that I shouted allowed "Why has nobody else told me that!". So well explained. Thank you.
Amazing OOP training, alot of concepts clear by now for me
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!
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.
@@jimbowayoutub2 I think the static class should not be named is_integer......else it is confusing
By far the best EXPLANATION of OOP concert I’ve watched, and I’ve watched a few. Thank you so much!
man it's so amazing. You are so good at explaining. Thank you soo much for get me out of the confusions. ❤️🙏🙏
Thank you so much. I've been having such a hard time for hours trying to understanding classes and methods. This was perfect.
Just what I needed ❤️
Same
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. :)
Thank you very much Jim, this helped me a lot to understand OOP
Amazing Explanation! you are teaching 1 month of course of the university in 2 hours.
Learned so much from single video thanks alot 👏✨💯🔥🔥
th-cam.com/channels/yoFQsVztx2oHWq14nY8A6A.html
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 !🤙
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!
🤩
finished in one sitting after finishing a similar course on datacamp and I understood everything perfectly. thank you so much man
This is just the thing i was looking for... Thank you very much ❤
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
What a brilliant course! Thank you :)
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.
Thank you so much for this extremely useful tutorial.
What an absolute MONSTER! This guy knows for sure how to teach
1:02:40 I am getting error that
float() argument must be a string or a number, not NoneType
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.
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.
That was really the best comprehensive video I have ever seen about OOP. Thanks a lot.
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
No.1 tutorial I have ever seen on OOPs concept
I'm fluent at OOP in Java and now I feel stuck when doing it in Python lol
I was Struggling to understand the concept of Class through tutorials, but this tutorial helped me to really understand well.
Thanks a lot!
if you see this comment. Please stop search python class course, this video is already all you need to know
watching it now 2 yrs after it was published. Super amazing. Thanks buddy.
Please rename the video title, it is very misleading. This maybe a good course for people who already know OOP to refresh their concepts and understand them better but is absolutely not for beginners. There is no clear guidance on *why* anything is being done, there is neither flow nor structure, just adhoc command giving and typing. As a true beginner in OOP, not once was it clarified why this is needed (in python for eg) to begin with, rather than write out flat code.
As this was an assigned video for a course, I had to unfortunately drag myself through it. But everything I learned about OOP, i got from reading blogs online and other videos that actually make the effort of telling why something is being done, what the end objective is, and how writing code the way it was written here helps us do that better.
The best Tutorial video I have seen till date for Python Programming
Shalom!
this might be the best tutorial i have ever watched
I prayed to God for this
as the one learning different things and trying different approaches all the time , I would say it was very informative and most importantly not boring and out of topic and also was concise
Thank you
At 1:32:33 I got this error when trying to write: print(Item.instantiate_from_csv())
print(Item.all)
error :in instantiate_from_csv
with open("items.csv", "r") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'items.csv'
I rarely comment on YT, but this video was super well made. Good job!
The practical way of explaining and the gradual pull into the concept was awesome. I am finally understanding. Thank you so much
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.
This is the best course I have seen, about anything, ever, thank you.
hay quá kênh này dạy lúc nào cũng dễ hiểu hơn so vs ng Việt dạy
tuyệt vời
Learned a lot from this course, helped me to understand OOP better. Thank you so much, Jim and FCC.