I'm really amazed by the way they made this video. It tells nothing but their mystery of the concept. The moment you are able to simplify the concept is the moment you earn the master of the concept title. Well done! And I'm glad to be part of the Socratica family.
this is such an amazing video, this along with the decorators one and a few others are awesome, I'm studying CS and I'm in my first ever semester of university and they're teaching python, it's a lot of content to understand but these videos help out a lot! like learning classes from my book and the uni lecture took me 3hours almost, but this video made me understand it much better in just 11 minutes, its insane.
Excellent video. I did not know that for self, you can pass in whatever name you want. I will still use self as it is convention but that is quite interesting. It does not seem to be the same for cls though. I started using Python OOP like 2 years ago. They make my code look so clean. 😁
This is pure Gold. So elegant and clear. My question is, do you have a course I can signup that is not on RUclips? I checked Socratica collections and I only see what is on RUclips
This is very fortuitous; I've had a little spare time and was thinking of playing around with game design, a field in which OOP is applied liberally. I honestly don't use OOP that much and need to brush up, and it seems Python has a somewhat different feature set regarding OOP than other languages I've used in the past. To drift outside the scope of this video and wax on a little bit about design; I'd highly recommend to newer programmers to only utilize OOP when it makes clear and obvious sense to do so. There are schools of thought that OOP is the biggest tragedy to ever befall the programming community, and while I think that's a bit extreme, it has been my experience that OOP gets applied to a *very* wide range of situations where it isn't necessary or appropriate.
OOP can be screwed up, but if you keep it S.O.L.I.D, it does well. My tips (and I know _you_ already know these): Strategy: >SRP: a class should have 1 purpose. No God objects, no scripts-in-a-class (the hardware ppl violate this all the time) >LSP: look it up. >Avoid object envy and inappropriate intimacy (don't mix two class's purposes) >Law of Demeter (keep it shallow) self.other.item.coins is bad >Has-A is better than Is-A (Is-A is so tempting when you learn about inheritance) >no race hazards in method calls (unless it's factored private method calculation) Tactics: >Lead with dunder init in the code (after class attributes--so 1st "def" is init). >Have it construct the whole object: no post init attribute injection. >do not do work in init. --if 2 and 3 are too hard, provide a class method constructor helper. >anything the object needs to do should be in a method. >method are the only place for side effect: only mutate attributes in the object _own_ methods, don't mutate other object from the parameters, never mutate "self" in a function. >push calculations up the method stack as far as possible. >YAGNI: don't add functionality before you need it, or know what it's going to look like. Other: Avoid primitive exception, e.g. don't make a phone number an integer, it looks like one, but it is not. Don't make it a "list" where you have to rememeber indices [area code, prefix, 4 digits], don't make it a dictionary {'area code': 800, 'prefix": 555,,,}...a class is a dictionary, so make it a class. ofc I have violated ALL of these, and have suffered as a result.
I feel in love with this channel years back and forgot due to life and school and now I'm back? I'm ready to fully invest! This is the kind of learning I would happily pay for!! Just went to your site, will you eventually do more advanced courses? say, an explanation of Topology, or AI/ML Python in this format. I love the scifi theme or any artistic theme it satisfies the artist in me and the Engineer I am by degree is satisfied by the information. You do a holy work here, divine by the universe
I can understand the pleasing symmetry of covering instance methods and class methods. Class methods are generally fairly uncommon though, and it's a lot more common to have static methods. Sadly, those don't fit the pleasing symmetry nearly so well. 😕 Otherwise, as always, I loved your presentation. :-)
i always enjoy coding in python - its a fun language. i guess they each have their enjoyable idiosyncrasy... golang is also fun. js isn't fun to me but the project goals can be made fun. i havent done any ML work but i hear mojo is super cool
This is just an awesome stuff. By the way do you have any other Python course that is not on RUclips? I have seen the website but I can't find anything that is not here. I wanted to sign up for Python 2 and Python 3 but none of them seem to be published yet.
I love the videos and would like to use them with students; unfortunately in recent feedback we seem to have an "uncanny valley" effect, highlighted when we studied the effect in robotics... it causes a disconnect with students and to some level a distrust of the information, explanations not being fully recognised.
Thank you Socratica, great material and very nice way of teaching. I am wondering why "introduction" as being a instance method is getting printed when calling "dir(Person)", I would've thought that only class methods will be printed, Do you know why this is happening? Thank you very much in advanced. Regards
You down with the O.O.P (yeah you know me) You down with the O.O.P (yeah you know me) You down with the O.O.P (yeah you know me) You down with the O.O.P (yeah you know me) You down with the O.O.P (yeah you know me) You down with the O.O.P (yeah you know me) Who's down with the O.P.P. (all the homies).
2:37 full_name? You doing work in dunder init? Nooooo!!!!! Make that a property or functools.cached_property, or, if it works, make it the output of dunder str. I don't do work in the init. It's a slippery slope. Oh, it's just adding two attributes---next thing you know you're opening resources on a Timbuktu server and doing giga-flop calculations and your whole abstraction grinds to a halt.
@@Allen-by6ciThis is naturally very subjective. I could do with fewer sound bits and I'd rather hear a more natural voice modulation. The older videos were not this over-produced. But it's great if you like it the way it is. Just my two cents.
I think its fun; its definitely preferable to not having any style at all. If you code a lot you know what a slog it can be to wade through endless tutorials with someone just speaking dryly at length over an unedited screencap.
𝙎𝙞𝙜𝙣 𝙪𝙥 𝙛𝙤𝙧 𝙎𝙤𝙘𝙧𝙖𝙩𝙞𝙘𝙖 𝘾𝙤𝙪𝙧𝙨𝙚𝙨: www.socratica.com/collections
𝙎𝙤𝙘𝙧𝙖𝙩𝙞𝙘𝙖 𝙋𝙮𝙩𝙝𝙤𝙣 𝙨𝙝𝙞𝙧𝙩: shop.socratica.com/products/python-by-socratica
I’m so happy !! A new Socratica Python video dropped !! Please do more such videos - they’re really so helpful !
Always happy to see ulka back with a programming video
Best channel in youtube. I wish you guys made an app so I would use it instead of getting distracted by youtube shorts :D
We're working on a course page as we speak! Thanks for your kind words.
I'm really amazed by the way they made this video. It tells nothing but their mystery of the concept. The moment you are able to simplify the concept is the moment you earn the master of the concept title.
Well done! And I'm glad to be part of the Socratica family.
Ulka is awesome as usual. Please list her in the credits.
She is! Please visit our illuminating Description box for lots of details.
A nice concise overview of Python classes in only eleven minutes! 👏🏼👏🏼👏🏼
As an App Dev, I will 100% be using "software thingies" to describe what I'm doing now.
I was thinking of a way to explain what objects are without being technical and yes, I would also call them software thingies. 🤣
Please do speed up uploading more amazing videos like this
I love the job you guys are doing here and appreciate it from the core of my heart🥰🥰🥰
this is such an amazing video, this along with the decorators one and a few others are awesome, I'm studying CS and I'm in my first ever semester of university and they're teaching python, it's a lot of content to understand but these videos help out a lot! like learning classes from my book and the uni lecture took me 3hours almost, but this video made me understand it much better in just 11 minutes, its insane.
Man, those dunder methods are really magical
3:03 thank you so much for disambiguating "parameter" and "argument". Up next: dunder next, dunder iter, iterabale vs iterorator .....
Yay!!! I'm so happy to see a new video from Socratica!
Excellent presentation! Thank you.
This series is really great.
Thank you so much for these videos. I can’t even express how appreciative I am. Please keep them coming and this format for learning is perfect.
Sent it to some friend and help him a lot. Outstanding explaining like always. You guys are awesome behind and in the front of Socratica Channel.
Very well done, explained. A second part with the explanation of creating and using the dunder methods: __repr__, __str__, etc would be great.
Those methods have great responsibility attached to them. 😁
Like button activated, comment section engaged. Ready for takeoff.
*like button activated mod 2 times.
I want every single thing I'm going to learn for the rest of my life explained by Ulka. 😀
Understanding OOP makes me smile
Excellent video. I did not know that for self, you can pass in whatever name you want. I will still use self as it is convention but that is quite interesting. It does not seem to be the same for cls though. I started using Python OOP like 2 years ago. They make my code look so clean. 😁
Que video legal.
Continuem com essa série, por favor, pois muito agradável o aprendizado.
Obrigado
This is pure Gold. So elegant and clear. My question is, do you have a course I can signup that is not on RUclips? I checked Socratica collections and I only see what is on RUclips
This is very fortuitous; I've had a little spare time and was thinking of playing around with game design, a field in which OOP is applied liberally. I honestly don't use OOP that much and need to brush up, and it seems Python has a somewhat different feature set regarding OOP than other languages I've used in the past.
To drift outside the scope of this video and wax on a little bit about design; I'd highly recommend to newer programmers to only utilize OOP when it makes clear and obvious sense to do so. There are schools of thought that OOP is the biggest tragedy to ever befall the programming community, and while I think that's a bit extreme, it has been my experience that OOP gets applied to a *very* wide range of situations where it isn't necessary or appropriate.
OOP can be screwed up, but if you keep it S.O.L.I.D, it does well. My tips (and I know _you_ already know these):
Strategy:
>SRP: a class should have 1 purpose. No God objects, no scripts-in-a-class (the hardware ppl violate this all the time)
>LSP: look it up.
>Avoid object envy and inappropriate intimacy (don't mix two class's purposes)
>Law of Demeter (keep it shallow) self.other.item.coins is bad
>Has-A is better than Is-A (Is-A is so tempting when you learn about inheritance)
>no race hazards in method calls (unless it's factored private method calculation)
Tactics:
>Lead with dunder init in the code (after class attributes--so 1st "def" is init).
>Have it construct the whole object: no post init attribute injection.
>do not do work in init.
--if 2 and 3 are too hard, provide a class method constructor helper.
>anything the object needs to do should be in a method.
>method are the only place for side effect: only mutate attributes in the object _own_ methods, don't mutate other object from the parameters, never mutate "self" in a function.
>push calculations up the method stack as far as possible.
>YAGNI: don't add functionality before you need it, or know what it's going to look like.
Other:
Avoid primitive exception, e.g. don't make a phone number an integer, it looks like one, but it is not. Don't make it a "list" where you have to rememeber indices [area code, prefix, 4 digits], don't make it a dictionary {'area code': 800, 'prefix": 555,,,}...a class is a dictionary, so make it a class.
ofc I have violated ALL of these, and have suffered as a result.
Very well done! 👏
your fitness is amazing you still look same as 6 years back.
Thanks for the beautiful video and welcome back.
Thank you Socratica Friend!!! 💜🦉
I feel in love with this channel years back and forgot due to life and school and now I'm back? I'm ready to fully invest! This is the kind of learning I would happily pay for!!
Just went to your site, will you eventually do more advanced courses? say, an explanation of Topology, or AI/ML Python in this format. I love the scifi theme or any artistic theme it satisfies the artist in me and the Engineer I am by degree is satisfied by the information. You do a holy work here, divine by the universe
yesss
As always high high quality!
Great video! Easiest sub of my whole life...
Thank you Socratica Friend!! 💜🦉
I can understand the pleasing symmetry of covering instance methods and class methods. Class methods are generally fairly uncommon though, and it's a lot more common to have static methods. Sadly, those don't fit the pleasing symmetry nearly so well. 😕
Otherwise, as always, I loved your presentation. :-)
fabulous stuff, thanks!
I love Socratica!
i always enjoy coding in python - its a fun language. i guess they each have their enjoyable idiosyncrasy... golang is also fun. js isn't fun to me but the project goals can be made fun. i havent done any ML work but i hear mojo is super cool
Whooo! New Python video. :D
This is just an awesome stuff. By the way do you have any other Python course that is not on RUclips? I have seen the website but I can't find anything that is not here. I wanted to sign up for Python 2 and Python 3 but none of them seem to be published yet.
It is indeed responsible to create classes.
I love the videos and would like to use them with students; unfortunately in recent feedback we seem to have an "uncanny valley" effect, highlighted when we studied the effect in robotics... it causes a disconnect with students and to some level a distrust of the information, explanations not being fully recognised.
Thank you Socratica, great material and very nice way of teaching. I am wondering why "introduction" as being a instance method is getting printed when calling "dir(Person)", I would've thought that only class methods will be printed, Do you know why this is happening? Thank you very much in advanced. Regards
I did not know about monkey patching lol. These Python OOP nicknames are out of control. 🤣
Impressive! Thanks.
Good stuff.
Welcome back
So if the double underscore is at the beginning of the function or program, does that make it a dunderhead?
any chance we can know what font you are using?
Thanks
great video
how do you get the idea of this type videos, whenever i visit here i think that a horror movie is being played your hard work is very appreciable
Awesome 🎉
pq abandonaram os brs? gostava tanto dos videos
The AI-emulating mistress we always wanted.
how to deploy python library ?
Strange to see your name used in an example. You are welcome!
You down with the O.O.P (yeah you know me)
You down with the O.O.P (yeah you know me)
You down with the O.O.P (yeah you know me)
You down with the O.O.P (yeah you know me)
You down with the O.O.P (yeah you know me)
You down with the O.O.P (yeah you know me)
Who's down with the O.P.P. (all the homies).
Now I crave for cookies
Us toooo oh no
Our friend just sent us a recipe for masala chai shortbread!
orly
you never came back to your spanish channel😢
💖💖💖💖
❤❤❤heart
noice
bro i am in future and i have a AI teacher.
2:37 full_name? You doing work in dunder init? Nooooo!!!!! Make that a property or functools.cached_property, or, if it works, make it the output of dunder str.
I don't do work in the init. It's a slippery slope. Oh, it's just adding two attributes---next thing you know you're opening resources on a Timbuktu server and doing giga-flop calculations and your whole abstraction grinds to a halt.
first
😂
I must say that the robotic design of the otherwise excellent videos is really distracting.
Nah.. you must be new. This is perfect.
Ulka is awesome
@@Allen-by6ciThis is naturally very subjective. I could do with fewer sound bits and I'd rather hear a more natural voice modulation. The older videos were not this over-produced. But it's great if you like it the way it is. Just my two cents.
I think its fun; its definitely preferable to not having any style at all. If you code a lot you know what a slog it can be to wade through endless tutorials with someone just speaking dryly at length over an unedited screencap.
@@hibryd7481Yes, there is a soft spot somewhere in between.