OOP in Python - Classes, Objects, class methods, monkey patching & more!

Поделиться
HTML-код
  • Опубликовано: 30 ноя 2024

Комментарии • 82

  • @Socratica
    @Socratica  8 месяцев назад +5

    𝙎𝙞𝙜𝙣 𝙪𝙥 𝙛𝙤𝙧 𝙎𝙤𝙘𝙧𝙖𝙩𝙞𝙘𝙖 𝘾𝙤𝙪𝙧𝙨𝙚𝙨: www.socratica.com/collections
    𝙎𝙤𝙘𝙧𝙖𝙩𝙞𝙘𝙖 𝙋𝙮𝙩𝙝𝙤𝙣 𝙨𝙝𝙞𝙧𝙩: shop.socratica.com/products/python-by-socratica

  • @soyuzssr
    @soyuzssr 8 месяцев назад +44

    I’m so happy !! A new Socratica Python video dropped !! Please do more such videos - they’re really so helpful !

  • @omhmpp
    @omhmpp 8 месяцев назад +25

    Always happy to see ulka back with a programming video

  • @2A9D8F
    @2A9D8F 8 месяцев назад +18

    Best channel in youtube. I wish you guys made an app so I would use it instead of getting distracted by youtube shorts :D

    • @Socratica
      @Socratica  8 месяцев назад +7

      We're working on a course page as we speak! Thanks for your kind words.

  • @ahmetahmed9754
    @ahmetahmed9754 8 месяцев назад +1

    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.

  • @Allen-by6ci
    @Allen-by6ci 8 месяцев назад +10

    Ulka is awesome as usual. Please list her in the credits.

    • @Socratica
      @Socratica  8 месяцев назад +3

      She is! Please visit our illuminating Description box for lots of details.

  • @TheWyrdSmythe
    @TheWyrdSmythe 8 месяцев назад

    A nice concise overview of Python classes in only eleven minutes! 👏🏼👏🏼👏🏼

  • @StwongDave
    @StwongDave 8 месяцев назад +5

    As an App Dev, I will 100% be using "software thingies" to describe what I'm doing now.

    • @emman100
      @emman100 8 месяцев назад +2

      I was thinking of a way to explain what objects are without being technical and yes, I would also call them software thingies. 🤣

  • @mohammadamanalimyzada1462
    @mohammadamanalimyzada1462 8 месяцев назад +5

    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🥰🥰🥰

  • @pineablesoda
    @pineablesoda 2 месяца назад

    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.

  • @murphygreen8484
    @murphygreen8484 8 месяцев назад

    Man, those dunder methods are really magical

  • @DrDeuteron
    @DrDeuteron 4 месяца назад

    3:03 thank you so much for disambiguating "parameter" and "argument". Up next: dunder next, dunder iter, iterabale vs iterorator .....

  • @Zancb
    @Zancb 8 месяцев назад +2

    Yay!!! I'm so happy to see a new video from Socratica!

  • @1cookgs
    @1cookgs 4 месяца назад

    Excellent presentation! Thank you.

  • @flarone
    @flarone 8 месяцев назад +1

    This series is really great.

  • @dewaynescott5114
    @dewaynescott5114 8 месяцев назад

    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.

  • @Mohammad2525
    @Mohammad2525 7 месяцев назад

    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.

  • @JorgeEscobarMX
    @JorgeEscobarMX 8 месяцев назад +1

    Very well done, explained. A second part with the explanation of creating and using the dunder methods: __repr__, __str__, etc would be great.

    • @emman100
      @emman100 8 месяцев назад +1

      Those methods have great responsibility attached to them. 😁

  • @angojones3713
    @angojones3713 8 месяцев назад +2

    Like button activated, comment section engaged. Ready for takeoff.

    • @DrDeuteron
      @DrDeuteron 4 месяца назад

      *like button activated mod 2 times.

  • @amarmusovic7748
    @amarmusovic7748 5 месяцев назад

    I want every single thing I'm going to learn for the rest of my life explained by Ulka. 😀

  • @techjunk8467
    @techjunk8467 8 месяцев назад

    Understanding OOP makes me smile

  • @emman100
    @emman100 8 месяцев назад +1

    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. 😁

  • @joaovazquez7112
    @joaovazquez7112 8 месяцев назад

    Que video legal.
    Continuem com essa série, por favor, pois muito agradável o aprendizado.
    Obrigado

  • @Gtv7020
    @Gtv7020 4 месяца назад

    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

  • @hibryd7481
    @hibryd7481 8 месяцев назад +1

    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.

    • @DrDeuteron
      @DrDeuteron 4 месяца назад

      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.

  • @pile333
    @pile333 8 месяцев назад +1

    Very well done! 👏

  • @FirozBhati-x9m
    @FirozBhati-x9m 7 месяцев назад

    your fitness is amazing you still look same as 6 years back.

  • @9jatechie
    @9jatechie 8 месяцев назад

    Thanks for the beautiful video and welcome back.

    • @Socratica
      @Socratica  8 месяцев назад

      Thank you Socratica Friend!!! 💜🦉

  • @shawnscientifica7784
    @shawnscientifica7784 7 месяцев назад

    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

  • @GenZ_01_
    @GenZ_01_ 5 месяцев назад

    As always high high quality!

  • @wahwahwally1
    @wahwahwally1 5 месяцев назад

    Great video! Easiest sub of my whole life...

    • @Socratica
      @Socratica  5 месяцев назад

      Thank you Socratica Friend!! 💜🦉

  • @Omnifarious0
    @Omnifarious0 8 месяцев назад

    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. :-)

  • @AlexanderBukh
    @AlexanderBukh 8 месяцев назад

    fabulous stuff, thanks!

  • @crackintosh
    @crackintosh 8 месяцев назад

    I love Socratica!

  • @dixztube
    @dixztube 8 месяцев назад

    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

  • @juanmacias5922
    @juanmacias5922 8 месяцев назад +1

    Whooo! New Python video. :D

  • @TekluEng
    @TekluEng 4 месяца назад

    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.

  • @iamjimgroth
    @iamjimgroth 8 месяцев назад +1

    It is indeed responsible to create classes.

  • @acherongoon
    @acherongoon 8 месяцев назад

    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.

  • @deepdatasoftware2553
    @deepdatasoftware2553 8 месяцев назад

    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

  • @emman100
    @emman100 8 месяцев назад +1

    I did not know about monkey patching lol. These Python OOP nicknames are out of control. 🤣

  • @GegeOriloye
    @GegeOriloye 8 месяцев назад

    Impressive! Thanks.

  • @mjkluck
    @mjkluck 8 месяцев назад +1

    Good stuff.

  • @israelortiz8820
    @israelortiz8820 8 месяцев назад

    Welcome back

  • @mikloslipcsey7923
    @mikloslipcsey7923 3 месяца назад

    So if the double underscore is at the beginning of the function or program, does that make it a dunderhead?

  • @d55ai
    @d55ai 5 месяцев назад

    any chance we can know what font you are using?

  • @hellocodeur
    @hellocodeur 8 месяцев назад

    Thanks

  • @sinaasadiyan
    @sinaasadiyan 8 месяцев назад

    great video

  • @waqarkhanpisces
    @waqarkhanpisces 8 месяцев назад

    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

  • @ChakradharrChakrii
    @ChakradharrChakrii 8 месяцев назад

    Awesome 🎉

  • @CerejaStudies
    @CerejaStudies 8 месяцев назад

    pq abandonaram os brs? gostava tanto dos videos

  • @atlantic_love
    @atlantic_love 2 месяца назад +1

    The AI-emulating mistress we always wanted.

  • @tomoki-v6o
    @tomoki-v6o 2 месяца назад

    how to deploy python library ?

  • @jeffschroeder4805
    @jeffschroeder4805 8 месяцев назад

    Strange to see your name used in an example. You are welcome!

  • @DrDeuteron
    @DrDeuteron 4 месяца назад

    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).

  • @kirbymarchbarcena
    @kirbymarchbarcena 8 месяцев назад

    Now I crave for cookies

    • @Socratica
      @Socratica  8 месяцев назад

      Us toooo oh no
      Our friend just sent us a recipe for masala chai shortbread!

    • @kellysmith7357
      @kellysmith7357 8 месяцев назад

      orly

  • @lucasgaperez
    @lucasgaperez 7 месяцев назад

    you never came back to your spanish channel😢

  • @ChandrashekarCN
    @ChandrashekarCN 8 месяцев назад

    💖💖💖💖

  • @destinliburd5455
    @destinliburd5455 8 месяцев назад

    ❤❤❤heart

  • @kellysmith7357
    @kellysmith7357 8 месяцев назад

    noice

  • @king1_one
    @king1_one 7 месяцев назад +1

    bro i am in future and i have a AI teacher.

  • @DrDeuteron
    @DrDeuteron 4 месяца назад

    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.

  • @LanguageHelp
    @LanguageHelp 8 месяцев назад +2

    first

  • @benjamingoldstein1111
    @benjamingoldstein1111 8 месяцев назад +4

    I must say that the robotic design of the otherwise excellent videos is really distracting.

    • @okaytokay
      @okaytokay 8 месяцев назад +14

      Nah.. you must be new. This is perfect.

    • @Allen-by6ci
      @Allen-by6ci 8 месяцев назад +4

      Ulka is awesome

    • @benjamingoldstein1111
      @benjamingoldstein1111 8 месяцев назад +1

      @@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.

    • @hibryd7481
      @hibryd7481 8 месяцев назад

      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.

    • @benjamingoldstein1111
      @benjamingoldstein1111 8 месяцев назад

      @@hibryd7481Yes, there is a soft spot somewhere in between.