【Pythonプログラミング】特殊メソッドを解説!自作クラスをもっとカスタマイズしよう!〜 初心者向け 〜

Поділитися
Вставка
  • Опубліковано 14 жов 2024

КОМЕНТАРІ • 27

  • @houwou
    @houwou 2 роки тому +4

    コンストラクタ以外意識したことがなかったので非常に勉強になりました!

    • @pythonvtuber9917
      @pythonvtuber9917  2 роки тому +1

      今回紹介したのは頻繁には使わないかもしれませんが「そんなことができるのか!」って感じですね!

  • @BILLIESGUITARDIARY
    @BILLIESGUITARDIARY 2 роки тому

    最近実務でPythonから離れてしまってるのですがサプーさんの動画を拝見するだけでもPythonとの接触機会になるので重宝してます。
    ありがとうございます!

    • @pythonvtuber9917
      @pythonvtuber9917  2 роки тому +2

      そう言っていただけて嬉しいです!
      プログラミングしてない時期でも情報にちょこちょこ触れてると戻る時にすんなり戻れると思いますね!

  • @maruta3262
    @maruta3262 Рік тому

    こんにちは!少し時間かかりましたが、本日でPython入門の再生リストを終了しました。
    Pythonって御作法どおりにコードを書くだけですごく綺麗で見やすいコードになることが解りました♬引き続き、サプーさんの動画で学んでいきたいと思います

    • @pythonvtuber9917
      @pythonvtuber9917  Рік тому +1

      すごい!嬉しいです!!再生リストのPython入門、結構な本数ありますよね😳
      ぜひ、今後もPython関連の動画を出していく予定なので、気になるものがあれば見てもらえたらと思います!!

  • @o_otaro
    @o_otaro Рік тому

    すごくわかりやすいです!
    説明が上手ですね😊
    python始めたばかりなので助かります☺️
    チャンネル登録しますね!

    • @pythonvtuber9917
      @pythonvtuber9917  Рік тому +1

      チャンネル登録ありがとうございます!!
      Python関連の動画をたくさん出しているので、気になるトピックがあれば是非見てみてください😊

    • @o_otaro
      @o_otaro Рік тому

      @@pythonvtuber9917 ありがとうございます!
      もし分かればでよいのですが、binaryやASCII形式で記入したデータのtextやcsv、Excelから取得したデータ(文字)がbinaryやASCIIの場合に\が\\になってしまいます😂SQLからも同じでした!
      そういったデータを文字列変換されずに取得する楽な方法はないでしょうか?
      現状、datファイルで行なっているのですごく手間がかかっております。
      わかりにくくて申し訳ないです😢
      無知な部分が多いので、動画参考になります☺️

  • @MikuHatsune-np4dj
    @MikuHatsune-np4dj 2 роки тому

    List や Dict の特殊メソッドも面白いですね

    • @pythonvtuber9917
      @pythonvtuber9917  2 роки тому +1

      コメントありがとうございます!色々知ると面白いですよね!

  • @konstantechang2779
    @konstantechang2779 Рік тому

    勉強になりました。

  • @kagohdk7124
    @kagohdk7124 2 роки тому

    普段__init__くらいしか使わないので
    特殊メソッド興味深いです!

    • @pythonvtuber9917
      @pythonvtuber9917  2 роки тому +1

      私も基本的には__init__くらいしか使わないのですが、ライブラリ解析しているときとかにたまに出会いますね!

  • @user-hh3yf5kt5q
    @user-hh3yf5kt5q 2 роки тому +1

    超ありがたいです!ありがとうございます!!!

    • @pythonvtuber9917
      @pythonvtuber9917  2 роки тому +1

      この動画がお役に立てていたら嬉しいです!

  • @imo1player
    @imo1player 7 місяців тому

    うーん、結局メソッドの挙動は、ダンダ‐メソッドの中で定義するのだから、
    演算子の種類と同じ種類の特殊メソッドを用意する意味なくね?
    単にコードの読みやすさのための配慮ってことかな??

  • @ti6079
    @ti6079 2 роки тому

    addとかintとかeqとか、使わないと面倒な実装になりそうなので役に立った。

    • @pythonvtuber9917
      @pythonvtuber9917  2 роки тому +2

      この動画がお役に立てていたら嬉しいです!!

  • @Uni-Hoya
    @Uni-Hoya 2 роки тому

    __str__で思い出しましたが、
    listのstrや
    f-stringの=付きで呼ばれるのが__repr__で、
    ちょっと初見殺しなんですよね
    ```
    class A:
    def __str__(self):
    return "str"
    def __repr__(self):
    return "repr"
    print(1, str(A()))
    # 1 str
    print(2, A())
    # 2 str
    print(3, f"{A()}")
    # 3 str
    print(4, [A()])
    # 4 [repr]
    print(5, f"{A()=}")
    # 5 A()=repr
    print(6, f"{A()=!s}")
    # 6 A()=str
    print(7, f"{A()!r}")
    # 7 repr
    ```

    • @Uni-Hoya
      @Uni-Hoya 2 роки тому

      補足:
      __repr__はrepr()に関係する特殊メソッドで、噛み砕いて言えば、「そのオブジェクトをほぼ完璧に再生成することができるPythonコードっぽい文字列」を返すべき関数です。主にデバッグ用。
      動画にも出てきた__str__は単に「そのオブジェクトから作った文字列」を返すべき関数です。
      デバッグ用printで便利な「f-stringの=フォーマット」においてreprが使われるのは納得なんですが、
      デバッグ用とは限らない「listのstr」でreprが使われるのは一体なぜなんでしょうかね・・・?
      内部の要素にもstrを適用した方が直感的だと思うんですが🙄

    • @pythonvtuber9917
      @pythonvtuber9917  2 роки тому +1

      なるほどですね!詳しい解説ありがとうございます!

  • @カメックス-w9e
    @カメックス-w9e 2 роки тому +2

    声可愛い

  • @asumaru55
    @asumaru55 Рік тому

    datetimeクラスを継承して MyDateTimeクラスを作成してみました。
    MyDateTime.now()が面倒だったので、MtDateTime()で作成しようとすると
    どうしても引数がないと怒られました。
    もしかして このときも__new__メソッドを使えば良いのでしょうか?

    • @pythonvtuber9917
      @pythonvtuber9917  Рік тому

      MyDateTimeが具体的にどういうコードなのかが分かると、アドバイスできるかと思います。

    • @asumaru55
      @asumaru55 Рік тому

      @@pythonvtuber9917
      ありがとうございます。
      __new__でできました。
      datetimeオブジェクトを継承させて、jpholidayと組み合わせて1つのインスタンスでできるようにできるかなぁと作ったものです。クラスの練習用に。
      毎回 now()メソッドを使うのが面倒なので、引数なしだと現在時刻をセットできればと考えた次第です。
      __init__では上手く行かなかったので__new__なら上手く行くかなぁとやってみたところできました。