python Generics (intermediate) anthony explains

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ม.ค. 2025

ความคิดเห็น • 19

  • @sadhlife
    @sadhlife 2 ปีที่แล้ว +9

    random trivia I learned recently: to make a generic protocol class, you can do:
    ```
    class C(Protocol, Generic[T]): ...
    ```
    which is a bit much, so there's a shorthand:
    ```
    class C(Protocol[T]): ...
    ```

  • @gabrielmota3583
    @gabrielmota3583 2 ปีที่แล้ว +25

    Awesome, a video about covariant/contravariant would be nice

    • @AceofSpades5757
      @AceofSpades5757 2 ปีที่แล้ว

      I would also like a video on this.

    • @venkateshhariharan4341
      @venkateshhariharan4341 2 ปีที่แล้ว

      Yes anthony that video would be great

    • @AlexanderSuraphel
      @AlexanderSuraphel 2 ปีที่แล้ว

      @anthonywritescode this would be a great!

    • @dibri
      @dibri 3 หลายเดือนก่อน

      what about it specifically? i;d love to write about it

  • @sadhlife
    @sadhlife 2 ปีที่แล้ว +10

    waiting for the 1 hour variance wideo *grabs popcorn

    • @anthonywritescode
      @anthonywritescode  2 ปีที่แล้ว +3

      it's not _that_ complicated -- I just didn't want to get into it in this already-long video lol

  • @jbrnds
    @jbrnds 2 ปีที่แล้ว +2

    I have a question for you, @anthonywritescode. I am in a continuous merge request review discussion back and forth with others regarding the use of `NoReturn` vs `None` for the return of a function or method that does not returns anything. Can you please shine your light on it? Docs state then the `NoReturn` is used for functions that are not expected to return anything; eg. an Exception raising function.

    • @anthonywritescode
      @anthonywritescode  2 ปีที่แล้ว

      you're in luck, I've got just the video for ya: th-cam.com/video/-zH0qqDtd4w/w-d-xo.html

  • @dhruvakashyap
    @dhruvakashyap 2 ปีที่แล้ว +2

    I remember my professor talking about covariate and contravariant types and all I remember is that "a bag of apples is not a bag of fruits"??

    • @sadhlife
      @sadhlife 2 ปีที่แล้ว

      that's actually a really good analogy XD

    • @anthonywritescode
      @anthonywritescode  2 ปีที่แล้ว +2

      indeed that's part of the story -- most of my framing is with c# `out` / `in` parameters (though generics are similar as well) -- immutability also comes to the table

  • @byte__3076
    @byte__3076 2 ปีที่แล้ว +1

    If I remember correctly, you don't need necessarily to type annotate the constructor if you say so: my_object = FDict[str, int]()
    In this case, it makes no sense but still, you can. BTW good video, and a very interesting topic

    • @anthonywritescode
      @anthonywritescode  2 ปีที่แล้ว +1

      yes but generally you don't want to do that since `tp.__getitem__` is very slow and has runtime overhead

  • @veloz7860
    @veloz7860 ปีที่แล้ว

    Is there any value in making a method generic that doesn't take any parameters, but could return a variety of things?

    • @anthonywritescode
      @anthonywritescode  ปีที่แล้ว

      that's not generic. a generic return value must be based on a parameter. you've got a union return (which is sort of a smell)

  • @DavidDellsperger
    @DavidDellsperger 2 ปีที่แล้ว +2

    /me misreads title as "python Geriatrics (intermediate)"...don't mind me

  • @akrylic_
    @akrylic_ 2 ปีที่แล้ว

    This is awesome