Размер видео: 1280 X 720853 X 480640 X 360
Показать панель управления
Автовоспроизведение
Автоповтор
めちゃくちゃ分かりやすい!疑問点も同時に解説してくれるのありがたい
ありがとうございます!そう言っていただけて嬉しいです!
いつも勉強させていただいてます。大学で教えてますが、今回のお話はとても役に立ちました。先日のロードマップのような話は、大学ではそこまでは扱わないのですが(アルゴリズムとかの話の方が中心なので)、今回のようなPythonの基礎の話(であるが、深いところ)は、とても参考になります。ありがとうございます。
ご視聴いただきありがとうございます😊大学ではアルゴリズムが中心なんですね!!すごいです!!このチャンネルではPythonの仕様に関することやライブラリの使い方がメインになりますが、少しでもお役に立てていたら嬉しいです✨
クラスメソッド、普通のクラスに書かれてるメソッドのことかと思ってました…ありがとうございます。スタティックメソッドは、ずっと「このオブジェクト自身を扱うメソッドなのに分けるのはなんだかなー」と思ってたので、今度使ってみたいと思います。
ご視聴いただきありがとうございます!クラスメソッド、スタティックメソッド、ちょっと言葉自体が抽象的で分かりにくいですよね😵ぜひ、今後使えるシーンで使ってみてください!
疑問が解決した🎉
動画拝見させてもらいました、動画の主旨とは少しズレるんですが、datetimeが、ライブラリ名やメソッド名?に使われてるのはクラスメソッドが関係してるんだという事が今回わかって良かったです。Pythonで、date型のデータを処理したり日時を比較するコードを書く時に手こずったことがあり、その辺機会があれば動画にしてもらえたら嬉しいです。
あまり深掘りした事がなかった二つなので勉強になりましたたまにライブラリのソースコードを見た時も @ がいっぱいあるなぁくらいだったので😇
ご視聴いただきありがとうございます😊ライブラリのコード見ると、確かにデコレータがよく使われているイメージはあるかもですね!今後、staticmethod, classmethodを見かけた時は、ぜひ今回の内容を思い出してみてください😉
インスタンス変数ではなくクラス変数にアクセスしたいときにも使いますね。
コメントありがとうございます😊
仕事の現場でインスタンスを作らないクラスメソッドの使い方をしてるのに@classmethodのデコレータ第一引数に、clsを渡すなどしてない書き方をしてる現場がありましたがこの書き方は問題無いのでしょうか?
Nice video!!
Thanks!
継承することの無いクラスを使う時はクラスメソッド使う必要ないって感じですかね?でもせっかくだから使った方がいいのかも?よくわかんないけど覚えることいっぱいで大変ですね笑
ご質問ありがとうございます😊そうですね、個人的にはクラスメソッドは使わなくて良いのではないかな?と思っています。これらは使う頻度は低いのですが、ライブラリを読みたい時や他の人のコードで出た時に、あれか!ぐらいには理解しておいた方が良いかな〜と思ってご紹介しました😉
スタテックメソッドの説明で登場するラムダ式について質問させてください。以下のような記述のソートは理解できるのですがsorted(l, key=lambda x: x[1]) ※2文字目でソートsorted(l, key=lambda x: len(x)) ※文字列の長さでソートsorted(books, key=lambda x: x.price) で価格順に並ぶのかが理解できません。「.price」はメソッドではないと思うのですが、なぜ、このような記述となっているのでしょうか?慣例的なものでしょうか?
ご質問ありがとうございます!「.price」はインスタンス変数にアクセスしているんですね!クラスの解説動画の7:03あたりからインスタンス変数へのアクセスについて解説してるので、よければ見てみてください😉 ▶︎ ruclips.net/video/XMDWpPZkRCc/видео.html
返信ありがとうございます。「x.price」は処理を進める中で「book1.price」、 「book2.price」、「book3.price」が設定されていくということですね。そのため、「x.price」には順に「1320」、「1650」、「499」の値が格納されるので、比較できるのですね。承知いたしました。
staticメソッド知らなかった!!もしclsが必要ないならstaticメソッドでいいという感じ?
コメントありがとうございます✨おっしゃる通りclsが必要ないならstaticメソッドを使う感じですね😊
Numpyの回ではimport文でnpを使用することが習慣になっているとのことでした。また、本動画ではクラスメソッドにおいて引数にclsを用いるのが一般的とありました。このような、変数名や、メソッド名その他の習慣・慣例を教えていただきたいです
コメントありがとうございます😊習慣・慣例で使われている名前などをまとめた動画をご希望、ということですかね?検討してみますね😉
こんにちは。いつも視聴させていただいています。継承時のクラスメソッドとスタティックメソッドの違いについて確認させてください。サブクラス&クラスメソッドの場合は、サブクラスのオブジェクトが生成される。サブクラス&スタティックメソッドの場合は、スーパークラスのオブジェクトが生成されるという違いがあることが判りました。ですが、スタティックメソッド使用時にスーパークラスのオブジェクトが生成されることのデメリットがいまいち理解できていません。私が考えついたスーパークラスのオブジェクトが生成されることのデメリットは、サブクラスに新たにインスタンスメソッドを作成した際に、スーパークラスのオブジェクトからはアクセスできないからというものなのですが、合っていますでしょうか?認識違い、不足している点がございましたら、教えてください。動画の内容に当てはめれば、、サブクラス『Comic』に新たにメソッド『display_info2』を作成したときクラスメソッドから作成したオブジェクトはメソッド『display_info2』を利用できるが、スタティックメソッドから作成したオブジェクトはメソッド『display_info2』を利用できないよろしくお願いいたします。
ご質問ありがとうございます!「サブクラス&スタティックメソッドの場合は、スーパークラスのオブジェクトが生成される」の部分がちょっと私の認識と違うのですが、もしもそのように動くコードなどあればコメント欄に貼り付けていただけるとありがたいです。5:12あたりから話している通り、スタティックメソッドは基本的には外にある関数とあまり変わらないので、オブジェクトを作成するみたいなファクトリーメソッドとしての使い方は、クラスメソッド特有だと思っています!
@@pythonvtuber9917 返信ありがとうございます。私のコードはimport jsonclass Book: def __init__(self, title, author, price): self.title = title self.author = author self.price = price def display_info(self): print(f'タイトル: {self.title}' f'著者: {self.author} ' f'価格: {self.price:,}円') @classmethod def from_json(cls, book_json): book_dict = json.loads(book_json) return cls( book_dict['title'], book_dict['author'], book_dict['price'] ) @staticmethod def from_json2(book_json): book_dict = json.loads(book_json) return Book( book_dict['title'], book_dict['author'], book_dict['price'] )class Comic(Book): def display_info2(self): print(f'タイトル: {self.title}' f'著者: {self.author} ' f'価格: {self.price:,}円')book_1 = Book.from_json( '{"title": "はらぺこあおむし", "author": "エリック・カール", "price": 1320}')book_1.display_info()comic_1 = Comic.from_json( '{"title": "はらぺこあおむし", "author": "エリック・カール", "price": 1320}')print(type(comic_1))comic_1.display_info2()print(type(comic_1))comic_2 = Comic.from_json2( '{"title": "はらぺこあおむし", "author": "エリック・カール", "price": 1320}')print(type(comic_2))comic_2.display_info2()です。print(type(comic_1))の実行結果が『』でしたので、サブクラスのオブジェクトが生成される、print(type(comic_2))の実行結果が『』でしたので、スーパークラスのオブジェクトが生成されると表現しました。色々な用語で出てきて、状態を正しく表せていませんでしたら、申し訳ございません。
コードを貼り付けてくださったコメントが、なぜか消えてしまったので(RUclipsのスパムに引っ掛かったのかも..??)こちらにご返答を記載させていただきます。コードありがとうございます。from_json2を呼び出すと、Comicのスーパークラス(Book)に記載された「from_json2」が動きますね。こちらは「return Book(xxx, yyy, zzz)」となっているのでBookオブジェクトが返ってきますね。ここが例えば別のクラス「User(xxx, yyy, zzz)」 ならUserオブジェクトが生成されるので、「スーパークラスが生成される」というより「コード上に記載されているクラスが生成される」ということですね!(今回のコードでは結果は同じですがスーパー・親という意味は持たないという意図です。)ご質問の本題である「スーパークラスのオブジェクトが生成されることのデメリット」ですが、デメリットは特になくて、どちらかというと、「具体的なクラスであるサブクラスのオブジェクトが作れると嬉しいよね!便利だよね!」というイメージですね。
@@pythonvtuber9917 返信ありがとうございました。>>「スーパークラスが生成される」というより「コード上に記載されているクラスが生成される」ということですね!結果的には同じですが、認識がズレていました汗汗(問題の本質)理解が進みました。また、何かございましたら、質問させてください。ありがとうございました。
めちゃくちゃ分かりやすい!
疑問点も同時に解説してくれるのありがたい
ありがとうございます!そう言っていただけて嬉しいです!
いつも勉強させていただいてます。大学で教えてますが、今回のお話はとても役に立ちました。
先日のロードマップのような話は、大学ではそこまでは扱わないのですが(アルゴリズムとかの話の方が中心なので)、今回のようなPythonの基礎の話(であるが、深いところ)は、とても参考になります。
ありがとうございます。
ご視聴いただきありがとうございます😊
大学ではアルゴリズムが中心なんですね!!すごいです!!このチャンネルではPythonの仕様に関することやライブラリの使い方がメインになりますが、少しでもお役に立てていたら嬉しいです✨
クラスメソッド、普通のクラスに書かれてるメソッドのことかと思ってました…ありがとうございます。
スタティックメソッドは、ずっと「このオブジェクト自身を扱うメソッドなのに分けるのはなんだかなー」と思ってたので、今度使ってみたいと思います。
ご視聴いただきありがとうございます!
クラスメソッド、スタティックメソッド、ちょっと言葉自体が抽象的で分かりにくいですよね😵
ぜひ、今後使えるシーンで使ってみてください!
疑問が解決した🎉
動画拝見させてもらいました、動画の主旨とは少しズレるんですが、datetimeが、ライブラリ名やメソッド名?に使われてるのはクラスメソッドが関係してるんだという事が今回わかって良かったです。
Pythonで、date型のデータを処理したり日時を比較するコードを書く時に手こずったことがあり、その辺機会があれば動画にしてもらえたら嬉しいです。
あまり深掘りした事がなかった二つなので勉強になりました
たまにライブラリのソースコードを見た時も @ がいっぱいあるなぁくらいだったので😇
ご視聴いただきありがとうございます😊
ライブラリのコード見ると、確かにデコレータがよく使われているイメージはあるかもですね!今後、staticmethod, classmethodを見かけた時は、ぜひ今回の内容を思い出してみてください😉
インスタンス変数ではなくクラス変数にアクセスしたいときにも使いますね。
コメントありがとうございます😊
仕事の現場で
インスタンスを作らない
クラスメソッドの使い方を
してるのに
@classmethodのデコレータ
第一引数に、clsを渡すなど
してない書き方をしてる
現場がありましたが
この書き方は問題無いのでしょうか?
Nice video!!
Thanks!
継承することの無いクラスを使う時はクラスメソッド使う必要ないって感じですかね?でもせっかくだから使った方がいいのかも?
よくわかんないけど覚えることいっぱいで大変ですね笑
ご質問ありがとうございます😊
そうですね、個人的にはクラスメソッドは使わなくて良いのではないかな?と思っています。これらは使う頻度は低いのですが、ライブラリを読みたい時や他の人のコードで出た時に、あれか!ぐらいには理解しておいた方が良いかな〜と思ってご紹介しました😉
スタテックメソッドの説明で登場するラムダ式について質問させてください。
以下のような記述のソートは理解できるのですが
sorted(l, key=lambda x: x[1]) ※2文字目でソート
sorted(l, key=lambda x: len(x)) ※文字列の長さでソート
sorted(books, key=lambda x: x.price)
で価格順に並ぶのかが理解できません。
「.price」はメソッドではないと思うのですが、なぜ、このような記述となっているのでしょうか?
慣例的なものでしょうか?
ご質問ありがとうございます!
「.price」はインスタンス変数にアクセスしているんですね!
クラスの解説動画の7:03あたりからインスタンス変数へのアクセスについて解説してるので、よければ見てみてください😉 ▶︎ ruclips.net/video/XMDWpPZkRCc/видео.html
返信ありがとうございます。
「x.price」は処理を進める中で「book1.price」、 「book2.price」、「book3.price」が設定されていくということですね。
そのため、「x.price」には順に「1320」、「1650」、「499」の値が格納されるので、比較できるのですね。
承知いたしました。
staticメソッド知らなかった!!
もしclsが必要ないならstaticメソッドでいいという感じ?
コメントありがとうございます✨
おっしゃる通りclsが必要ないならstaticメソッドを使う感じですね😊
Numpyの回ではimport文でnpを使用することが習慣になっているとのことでした。
また、本動画ではクラスメソッドにおいて引数にclsを用いるのが一般的とありました。
このような、変数名や、メソッド名その他の習慣・慣例を教えていただきたいです
コメントありがとうございます😊
習慣・慣例で使われている名前などをまとめた動画をご希望、ということですかね?
検討してみますね😉
こんにちは。いつも視聴させていただいています。
継承時のクラスメソッドとスタティックメソッドの違いについて
確認させてください。
サブクラス&クラスメソッドの場合は、サブクラスのオブジェクトが生成される。
サブクラス&スタティックメソッドの場合は、スーパークラスのオブジェクトが生成される
という違いがあることが判りました。
ですが、スタティックメソッド使用時にスーパークラスのオブジェクトが生成されることの
デメリットがいまいち理解できていません。
私が考えついたスーパークラスのオブジェクトが生成されることのデメリットは、サブクラスに
新たにインスタンスメソッドを作成した際に、スーパークラスのオブジェクトからはアクセス
できないからというものなのですが、合っていますでしょうか?認識違い、不足している点
がございましたら、教えてください。
動画の内容に当てはめれば、、サブクラス『Comic』に新たにメソッド『display_info2』を作成したとき
クラスメソッドから作成したオブジェクトはメソッド『display_info2』を利用できるが、
スタティックメソッドから作成したオブジェクトはメソッド『display_info2』を利用できない
よろしくお願いいたします。
ご質問ありがとうございます!
「サブクラス&スタティックメソッドの場合は、スーパークラスのオブジェクトが生成される」の部分がちょっと私の認識と違うのですが、もしもそのように動くコードなどあればコメント欄に貼り付けていただけるとありがたいです。
5:12あたりから話している通り、スタティックメソッドは基本的には外にある関数とあまり変わらないので、オブジェクトを作成するみたいなファクトリーメソッドとしての使い方は、クラスメソッド特有だと思っています!
@@pythonvtuber9917
返信ありがとうございます。
私のコードは
import json
class Book:
def __init__(self, title, author, price):
self.title = title
self.author = author
self.price = price
def display_info(self):
print(f'タイトル: {self.title}
'
f'著者: {self.author}
'
f'価格: {self.price:,}円
')
@classmethod
def from_json(cls, book_json):
book_dict = json.loads(book_json)
return cls(
book_dict['title'],
book_dict['author'],
book_dict['price']
)
@staticmethod
def from_json2(book_json):
book_dict = json.loads(book_json)
return Book(
book_dict['title'],
book_dict['author'],
book_dict['price']
)
class Comic(Book):
def display_info2(self):
print(f'タイトル: {self.title}
'
f'著者: {self.author}
'
f'価格: {self.price:,}円
')
book_1 = Book.from_json(
'{"title": "はらぺこあおむし", "author": "エリック・カール", "price": 1320}'
)
book_1.display_info()
comic_1 = Comic.from_json(
'{"title": "はらぺこあおむし", "author": "エリック・カール", "price": 1320}'
)
print(type(comic_1))
comic_1.display_info2()
print(type(comic_1))
comic_2 = Comic.from_json2(
'{"title": "はらぺこあおむし", "author": "エリック・カール", "price": 1320}'
)
print(type(comic_2))
comic_2.display_info2()
です。
print(type(comic_1))の実行結果が『』でしたので、サブクラスのオブジェクトが生成される、
print(type(comic_2))の実行結果が『』でしたので、スーパークラスのオブジェクトが生成される
と表現しました。
色々な用語で出てきて、状態を正しく表せていませんでしたら、申し訳ございません。
コードを貼り付けてくださったコメントが、なぜか消えてしまったので(RUclipsのスパムに引っ掛かったのかも..??)こちらにご返答を記載させていただきます。コードありがとうございます。
from_json2を呼び出すと、Comicのスーパークラス(Book)に記載された「from_json2」が動きますね。こちらは「return Book(xxx, yyy, zzz)」となっているのでBookオブジェクトが返ってきますね。ここが例えば別のクラス「User(xxx, yyy, zzz)」 ならUserオブジェクトが生成されるので、「スーパークラスが生成される」というより「コード上に記載されているクラスが生成される」ということですね!(今回のコードでは結果は同じですがスーパー・親という意味は持たないという意図です。)
ご質問の本題である「スーパークラスのオブジェクトが生成されることの
デメリット」ですが、デメリットは特になくて、どちらかというと、「具体的なクラスであるサブクラスのオブジェクトが作れると嬉しいよね!便利だよね!」というイメージですね。
@@pythonvtuber9917
返信ありがとうございました。
>>「スーパークラスが生成される」というより「コード上に記載されているクラスが生成される」ということですね!
結果的には同じですが、認識がズレていました汗汗
(問題の本質)理解が進みました。
また、何かございましたら、質問させてください。ありがとうございました。