Тёмный

[Introduction to Python Class] Carefully explain the basics of Python classes !! [For beginners] 

Pythonプログラミング VTuber サプー
Подписаться 91 тыс.
Просмотров 124 тыс.
50% 1

Опубликовано:

 

1 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 94   
@99NAO99
@99NAO99 Год назад
pythonのクラスを概念的に理解させる為に、特に難解なselfとオブジェクトの関連を上手に解説されてる最高の教材動画だと思います。これ程丁寧かつ親切に噛み砕いて解説されてる動画は観たことがない。絶賛に値する名動画だと思います。動画主さんのご苦労と聡明な説明力に感謝します。
@TaroHiro
@TaroHiro 3 года назад
python 初学者です。classの概念が理解できました。ありがとうございます。 1点classとは関係ないのですが、動画中に print(f"Aさんの3教科平均点:{avg_b}") とありますが、この print(f" ってどういう意味があるんでしょうか。
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご質問ありがとうございます! こちらはf文字列(f-string)を使っています!Pythonの変数を文字列に埋め込むことができるんですが、色々な書き方があってとっても便利ですよ! 以前に、文字列フォーマットについて動画を出しているので、ぜひ、見てみてください😊 文字列フォーマット▶︎ ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-XvdJz2o-l60.html
@鈴木男-k4c
@鈴木男-k4c Год назад
とてもわかりやすい抗議ででした!ありがとうございます! 1点質問なのですが、動画内23:16のsum_scoreをAttributeErrorで呼び出せない場合の処置なのですが、動画内でself.をつけると仰っていたのですが、よくわかりませんでした。動画内も修正前も修正後もself.がついているように見えるのですがどうでしょうか?
@pythonvtuber9917
@pythonvtuber9917 Год назад
あ、編集が切れててちょっとわかりにくいですね。selfをつけたのは左辺のsum_scoreですね。sum_scoreは始めはselfがついてないです。sum_socreをインスタンス変数にしないとオブジェクトからアクセスできないのでselfをつけています!
@鈴木男-k4c
@鈴木男-k4c Год назад
@@pythonvtuber9917 ありがとうございます!見逃してました。問題なくアクセスできました。
@shintake3394
@shintake3394 3 года назад
初学者なのですが、めっちゃわかりやすかったです!ありがとうございました!
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご視聴いただき、ありがとうございます!! お役に立てて良かったです🤗
@こーきだーみん
@こーきだーみん Год назад
教授の講義より全然短いのに何倍もわかりやすいの凄い!助かりました!
@pythonvtuber9917
@pythonvtuber9917 Год назад
ご視聴ありがとうございます!!クラスの理解のお役に立っていたら嬉しいです!
@kaz1693
@kaz1693 Год назад
「クラスの基本を解説」を見ましたがついていけず。こちらをじっくり見ながら手を動かして理解するこができました! この動画があって良かった…。ありがとうございます。
@pythonvtuber9917
@pythonvtuber9917 Год назад
クラスの理解のお役にたててよかったです!!
@servetakay6754
@servetakay6754 6 месяцев назад
勉強させていただいてます◎ クラスについての前の動画で、イニシャライザの意味がよくわからなかったのですが、今回の動画でもよくわかりませんでした😢 ないとどうなるのでしょうか。普通に引数を受け渡しするだけではだめなのでしょうか。
@ハゲタコ-x8w
@ハゲタコ-x8w Год назад
動画の23:17あたりのsum_scoreの属性がないためエラーがでて、そのあとself.をつけるとエラーがなくなる部分がわかりませんでした エラー後の「self.をつけると〜」の部分でどこが変わったのかが分からないんですが、どう変わったからエラーが出なくなったのでしょうか? 的外れな質問だったらすみません
@ipg4140
@ipg4140 2 года назад
実例を混じえての説明で分かりやすかったです。ありがとうございます。 初学者なので、自分でclassを作ろうとすると、まだ混乱します。そこで質問なのですが、classを実践的に習得できる動画作成の予定、勉強方法はありますか? ご教授お願いいたします。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
コメントありがとうございます!! クラスの実践系の動画ですかね?作ろうと思っているんですが、まだ明確にいつ作るかの予定はないです😵 勉強方法としては、結局は色々なクラスを作ってみる・使ってみる、という事だと思います!
@hiroyukifuruta2725
@hiroyukifuruta2725 2 года назад
Pythonはインスタンス変数がオブジェクト作成後に追加できるという便利な機能あるけど、それが逆にクラス変数を同名のインスタンス変数が隠してしまって基本ルールのクラス変数はクラス共通なのに同名のインスタンス変数が優先され共通にならない状態が発生するのでややこしい。クラス変数をクラス間のグローバル変数みたいな感覚で使うと注意しないとうまくいかない 笑
@pythonvtuber9917
@pythonvtuber9917 2 года назад
おっしゃる通り、その部分はややこしいしバグの温床になりそうですよね...Pythonはオブジェクト指向でも書けるけど、厳密なものを求めるのであれば、別の言語の方が好ましいかな...という感じですね!
@ericrocketstar2608
@ericrocketstar2608 2 года назад
Pythonチュートリアルの本では、料理に例えていましたが、こちらの成績表で例えている方が、個人的に分かりやすかったですし、こんなふうに使えそうだなぁと実用的なイメージが湧きやすかったです。 ありがとうございました👍
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご視聴いただきありがとうございます😊 クラスは理解しにくいトピックではあると思いますが、分かりやすいと言ってもらえて嬉しいです✨
@wataame4713
@wataame4713 Год назад
質問すいません。 selfとotherって同じっていう解釈でよろしいのでしょうか??
@secondlife4337
@secondlife4337 Год назад
これはかなりわかりやすい。学校の先生よりもうまい! これは子供にも教えておこう。ありがとうございます。
@pythonvtuber9917
@pythonvtuber9917 Год назад
ありがとうございます!分かりやすさを重視して作っているので、そう言ってもらえて嬉しいです!!
@lilymathematician7243
@lilymathematician7243 2 года назад
今まで何となく使っていたclassがちゃんと理解できた気がします。ありがとうございます!
@pythonvtuber9917
@pythonvtuber9917 2 года назад
コメントありがとうございます😊 分かりやすい動画になるように工夫して作ったので、そう言ってもらえて嬉しいです!!
@user-bc2jx4ue6q
@user-bc2jx4ue6q Год назад
python初心者です、クラスのインポートについて質問させていただきたいです。  A.pyというモジュールから、XというクラスをA_test.pyにインポートする際、(A.pyとA_test.pyは同じ階層の同じパッケージ) from A import X と書いてインポートして、Xからabcというオブジェクトを作って表記するために abc = X() X.abc.print() と書いたのですが、(Xにはprintメソッドがあります) type object X has no attribute abc と出てしまいます。A.py内ではXは正常に動きprintも動作したのでクラス自体には問題がないと思うのですが、どこを治せば良いでしょうか...?よろしくお願いします...
@pythonvtuber9917
@pythonvtuber9917 Год назад
abcというオブジェクトを作ったら、abc.print()で呼び出せませんか?また、メソッド名として「print」を使うと、組み込み関数のprint()と被るので名前を変更したほうが良いですね!
@おけけ資格勉強中
@おけけ資格勉強中 5 месяцев назад
23:00のコードでも23:22のコードでも「self.」がついていると思いますが、前者のどこにselfがついていないのでしょうか スクショして見比べてみましたが、違いを見つけられませんでした
@秋将-b6l
@秋将-b6l 3 месяца назад
'sum_score'のところに'self'がついていません。 'self'がない'sum_score'は'calc_avg_score()'が呼ばれたときに 生成されてcalc_avg_score()'の処理が終わると'sum_score'は消えてしまうので 外部からアクセスできません。
@しおこんぶ-o5e
@しおこんぶ-o5e 2 года назад
同じようにやったのにエラーでさきすすまない、、、 ----> 1 class SchoolReport: 2 def __init__(self, student_name, math_score, jp_score, en_score): 3 self.student_name = student_name Input In [41], in SchoolReport() 10 avg_score = sum_score/3 12 return avg_sore ---> 14 sr_a = SchoolReport('田中A', 100, 30, 50) 15 avg_a = sr_a.calc_avg_score() 16 print(f'Aさんの3教科平:{avg_a}') TypeError: __init__() takes 2 positional arguments but 5 were given
@pythonvtuber9917
@pythonvtuber9917 2 года назад
エラー文言からすると、イニシャライザの引数の数が定義と違っているようですが、その実行ファイルのコード全部がわからないと、どこが間違っているのかちょっと分からないですね😵 エラー解消方法の動画も出しているので、ご覧ください! ▶︎ ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-n-CEndcgAFY.html
@Libertas011
@Libertas011 2 года назад
selfの扱い方や、各変数の呼び出し方などについて理解が深まりました。 今回もありがとうございます。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
コメントありがとうございます😊 クラスはつまづきやすいトピックですが、Pythonのクラスについて理解のお役に立てていたら嬉しいです!
@8koi245
@8koi245 2 года назад
Woooo my first language!!
@pythonvtuber9917
@pythonvtuber9917 2 года назад
Thank you!
@debilman11
@debilman11 2 года назад
seleniumに興味を持ってPython(3.x系一本で行きたい)かじり始めた者です。この動画おかげでクラスとは何ぞ…が解決できモジュールの使い方はソースコードを見てなんとなく理解 → コード内のワードでググれば近道だ。と気づけました。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご視聴いただきありがとうございます! この動画が少しでも、コード理解の参考になっていたら嬉しいです😊
@hiram5358
@hiram5358 2 года назад
お世話になります。今回のクラスは前回に比べて中身が濃くなっているので、時間がかかりました。前回と今回両方見ないと初心者としては辛いかもしれません。__init__がわかってきました。ありがとうございます。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご視聴いただきありがとうございます😊 初心者の場合、クラスは一気に理解するのは難しいですよね!色々クラスを扱う中で、慣れていってもらえたらとおもます!
@user-rt6nz1zx5ys
@user-rt6nz1zx5ys 2 года назад
self.student_name = student_name の行がエラーと出ます
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご質問ありがとうございます! エラー文はどのようなものでしょうか? また、エラー解消のための動画を出しているので、よければ見てみてください😉 ▶︎ ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-n-CEndcgAFY.html
@ラフラフ-w5m
@ラフラフ-w5m Год назад
同じくPythonエンジニアをしているものです。私が思うクラスの文法は クラス(設計図) データ=クラス変数+インスタンス変数 機能=特殊メソッド+通常メソッド クラス変数:クラスから生成されるインスタンスのすべてが共通にもつデータ。 メソッド外で定義された変数。 メソッド内に呼び出す場合はself.クラス変数。 クラス外に呼び出す場合はクラス.クラス変数。 インスタンス変数:各々のインスタンス固有のデータ 初期化メソッドでself.インスタンス変数=〜と定義された変数 メソッド内に呼び出す場合はself.インスタンス変数 クラス外に呼び出す場合はインスタンス.インスタンス変数 メソッド:クラスの中で機能を表現する クラス外に呼び出す場合はインスタンス.メソッド() ※特殊メソッドはとくにインスタンス.メソッド()と呼び出さなくてもある条件を満たせば自動的にメソッドが実行される サプーさんの動画を見て学んだ弟子ですw
@hiroyama4135
@hiroyama4135 4 месяца назад
Python初学者のジジイですが、わかりやすい、チャンネル登録させてもらいました。これからも頑張ってください!
@pythonvtuber9917
@pythonvtuber9917 4 месяца назад
チャンネル登録ありがとうございます!これからもPython関連の動画を色々投稿していくので、ご視聴いただけたら嬉しいです!
@mjolnir501
@mjolnir501 Год назад
神動画! ありがとうございます
@pythonvtuber9917
@pythonvtuber9917 Год назад
クラスの理解のお役に立てていたら嬉しいです!
@あひーじょー
@あひーじょー 2 года назад
Pythonのクラスは継承より委譲? ってのをよく目にするのですがその辺りよくわかんないんですよね… 仕事上そこまで大規模なもの作ってるわけじゃないんで気にせずクラス継承使ってるんですが。。。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
コメントありがとうございます!! クラスの委譲については「is-aの関係 has-aの関係」という動画で解説しているので、よければ見てみてください😊 has-aの関係が委譲になります! is-a, has-a▶︎ ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-A8854NYDTdo.html
@Neo-ez5mn
@Neo-ez5mn 2 года назад
めちゃくちゃわかりやすかったです! もしよければ__init__と__new__ってやつの違いの解説とかってできますか?
@pythonvtuber9917
@pythonvtuber9917 2 года назад
newだけじゃなく、特殊メソッドだけを扱った動画を作ろうと考えてるので、少々お待ちいただけたらと思います!
@hamuhamu6966
@hamuhamu6966 2 года назад
アンダースコアをアンスコって略してる人がいたんですが、この呼び方ってメジャーなんですか?
@pythonvtuber9917
@pythonvtuber9917 2 года назад
普通に聞くし、私も使う時ありますね!
@lagavulin1968
@lagavulin1968 3 года назад
初心者に優しい動画なのでとても理解が深まりました!
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご視聴いただきありがとうございます😊 そう言っていただけて本当に嬉しいです!!
@beleza9753
@beleza9753 2 года назад
毎日この一連のコードを打ち込んでいます。書式とか2番目の def など、まだまだです。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
動画だと何度も見れるので、少しずつ理解していただけたらと思います😉 不明点があれば、コメントに記載いただけたらできる限り回答させていただいてます!
@mohimohi8581
@mohimohi8581 3 года назад
よく参考書に関数だけでいいのにクラスで書かれていることがあります。 もし、大規模な開発を行うのであれば、クラスでかく意味がわかるのですが、100行程度でもクラスにわけて作っているものが多いです。これはなぜなのでしょうか。 それぞれの役割をはっきりとしたいためなのか、筆者が大規模な開発に携わっていて…だから癖でかいてしまうのか…色々と考えてしまいます。 また、今後のプログラム作成においてdefで一つのファイルにおさめるよりもクラスを普段から意識をして作っていった方がいいのでしょうか。
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご質問ありがとうございます!とても鋭い質問ですね😊 クラスも関数も1つの道具なので、どちらを使うかは「どのように設計して、どのようにアプローチしたいか?」の違いでしかないと思います。これは習慣であったり、個人の好みの違いであって、どちらが正しいということはないです。 ただ、オブジェクト指向、カプセル化・継承・ポリモフィズムといったものを使いたい場合は、必然的にクラスを使用することになりますね。オブジェクト指向については動画を出しているので、よければ見てみてください! オブジェクト指向動画 ▶︎ ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-XWxcxchJgbI.html 「クラスを普段から意識をして作っていった方がいいのか?」の質問については、クラス作成に慣れているのであれば意識してクラスを使わなくていいと思います。「クラスを作ることはできるけど、あえて関数を使っている」のと、「関数しか使えないから関数を使っている」のでは、前者の方が良いと思います!なので、クラスに慣れてないのなら、意識してクラスを使ってみてもいいと思います😊
@mohimohi8581
@mohimohi8581 3 года назад
@@pythonvtuber9917 参考の動画をありがとうございます。カプセル化や継承などを用いるときは、クラスの作成ということなので、目的に合わせて作っても良さそうですね! クラスを作ると再利用や内容の変更に強いプログラムができると思うので、複雑なプログラムを作るときにはクラスを用いること、それ以外はdefのみで一つのファイルで気軽に作ろうと思いました笑 回答ありがとうございました😊
@Cosmoideon
@Cosmoideon 3 года назад
@@mohimohi8581 データ解析(science, marketing) くらいだったら関数でもいいような気がしますね。 でも少し込み入った解析、たとえば、マウス操作で画像解析をしたい時なんかはクラスを使った方がいいかもしれません。 クラスを使わない場合でも、一つの関数に全ての解析内容を組み入れるよりかはコンパートメントを意識して、改変しやすいように幾つもの関数を用意して組み合わせて使った方がいいような気がします。
@shima9527
@shima9527 2 года назад
こんにちは! いつも大変参考にさせてもらってます! さて、質問なのですが本動画で使用している「code.py」にメイン処理を記載するmain関数を作るとします。 作ったmain関数はif __name__ == '__main__':の中で実行します。 if __name__ == '__main__': はクラス外に書くのが一般的なのかな〜?と思っているのですが main関数もクラス外に書くのが一般的でしょうか?
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご質問ありがとうございます😊 if __name__ == '__main__': は一番外に書きます! main関数もクラスの外に書きます! イメージとしてcode.pyの中身はこんな感じです😉 ================= import os class User: def __init__(self): pass def main(): pass if __name__ == '__main__': main()
@shima9527
@shima9527 2 года назад
@@pythonvtuber9917 import os class Kansha: def __init__(self): pass def main(): print('Thanks😉') if __name__ == '__main__': main()
@iceberg8891
@iceberg8891 2 года назад
サプーさん笑顔が素敵ですね!😄 全く違う人の本でpythonを勉強していたのですが、クラスについての理解を深めたいため、この動画にたどり着きました。 そこで教えていただきたいのですが、その人の本ではサプーさんがclass SchoolReport:としているところをclas schoolReport(object):としていました。どちらで書いても通るのですが、その意図するところを教えていだだけないでしょうか?その本の人の意図についてはサプーさんの推測でけっこうですので。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご質問ありがとうございます😊 クラスの継承についてはご理解でしょうか?class クラス名(object): と書くとobjectクラスを継承することになります。Pythonのクラスは基本的にobjectクラスを継承します。なのでいちいち書くのが面倒なので省略形としてclass クラス名: と書きます。Pythonの公式ドキュメントでもいちいち(object)と書いてはいないので、書かないのが普通かな 、と思います! 公式ドキュメント▶︎docs.python.org/ja/3/tutorial/classes.html#class-definition-syntax また、クラスの継承に関する動画もアップしているので、継承の意味が分からなけらば、ご参考にしてください😉 継承▶︎ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-_F6-TgtInTA.html
@iceberg8891
@iceberg8891 2 года назад
おー!😳なるほど! リンク先の動画も参考になりますね!😂 クラスの扱い方は私にとって難しいもので、まだまだ理解したとは言えないのですが、これからは(object)は省略した、すっきりとした形で覚えることにします!ありがとうございました!!😁
@岩佐浩幸-j8b
@岩佐浩幸-j8b Месяц назад
python もサプーも大好きです!
@pythonvtuber9917
@pythonvtuber9917 Месяц назад
わー!!嬉しいです☺️
@フナバシマサアキ
@フナバシマサアキ Год назад
大変わかりやすくありがたいです。一つ質問なのですが、クラス変数はコンストラクタの上に書くようにと説明されているのですが、試しにコンストラクタの下にインテンドを揃えて書いてみたところ、同じ挙動になるのですが、これはたまたま上手く行ったと言うことで、本来の書き方ではないと言うことでしょうか?
@ab_221B
@ab_221B Год назад
ソースコードの可読性やメンテナンスのしやすさで推奨されてるだけです。
@Kernel-カーネル
@Kernel-カーネル 3 года назад
わかりやすい!
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ありがとうございます!!そう言っていただけて嬉しいです😊
@-l6358
@-l6358 2 года назад
せっかくなのでデザインパターンの動画も...
@pythonvtuber9917
@pythonvtuber9917 2 года назад
コメントありがとうございます😊 デザインパターンの動画も出したいと思っていました!!すぐにはアップできないですが、作成したいと思います!!
@-l6358
@-l6358 2 года назад
@@pythonvtuber9917 楽しみに待ってます!!
@物事の本質を見抜く
@物事の本質を見抜く 2 года назад
他の動画より分かりやすい!
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ありがとうございます!!
@ajpvjtvmttt4468
@ajpvjtvmttt4468 2 года назад
わかりやすい!ありがとうございました😭😭
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご視聴いただきありがとうございます! クラスの理解のお役に立てていたら嬉しいです😊
@user-kc7tu3ef3t
@user-kc7tu3ef3t 3 года назад
クラスについて、解りやすい動画ありがとうございます。
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご視聴いただき、ありがとうございます!! わかりやすいと思ってもらえて嬉しいです😊
@sasensui1000
@sasensui1000 8 месяцев назад
クラスもオブジェクト、要素もオブジェクト メソッドも、インスタンスも 全部オブジェクト
@SS-uj2nu
@SS-uj2nu 3 года назад
まんまかいたのになぜか。 name 'SchoolReport' is not definedってでる。。。どうして。。。
@pythonvtuber9917
@pythonvtuber9917 3 года назад
「SchoolReport」が定義されてないようですが、コード内にスペルミスなどはありませんか? エラーが出力されるソースコードを載せていただけたら、お役に立てるかもです!!
@秋将-b6l
@秋将-b6l 3 месяца назад
c++のクラスでのSTATIC変数とクラス変数は似てますね
@雲外蒼天-h1l
@雲外蒼天-h1l 8 месяцев назад
説明が丁寧で、構造的だと感じました。 非常にありがたいです。
@kkkkk2915
@kkkkk2915 3 года назад
わかりやすかったです! あと、sumをますって読んじゃってますよ
@pythonvtuber9917
@pythonvtuber9917 3 года назад
コメントありがとうございます! わゎゎ.....15:19あたりで確かに言い間違えてますね😂 コードは正しいので聞き流してもらえたらと思います😇
@skipclass123
@skipclass123 Год назад
print文の中のAさん、Bさんを自動で出力するコードはありますでしょうか?
@pythonvtuber9917
@pythonvtuber9917 Год назад
すみません、質問の内容がよく理解できなかったのですが「自動で出力」というのは具体的にどのようなイメージが教えていただけますでしょうか?
@TheSuccinicAcid
@TheSuccinicAcid 2 года назад
プロパティの動画から来ました。こちらの録音環境の方が、キンキンした感じが無くて聞きやすいですね。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
コメントありがとうございます! 音質が動画によってマチマチで申し訳ないです😵 出来る限り音割れがないように動画作成を頑張ります!!
Далее
Обменялись песнями с POLI
00:18
Просмотров 260 тыс.
ХОККЕЙНАЯ КЛЮШКА ИЗ БУДУЩЕГО?
00:29