お帰りなさい｡
実際にクラスの属性を作成することができたことを知りました｡
でも､ メソッドはどうでしょう？
ここのような方法はないのでしょうか？
属性はともかく､ メソッドはどうするのか？
まあ､ あるにはあるんですけどね｡
そして､ デコレーターを使用しています｡ これは後ほど取り上げるトピックで､ これらがボンネットの下でどのように動作するかは､ 少しずつ理解していくことになります｡
でも､ とりあえず､ 使う構文はadd側です｡
そして､ このようにクラスメソッドを呼び出すのです｡
そして､ このデコレーターを使って､ 今度は関数を書くことができます｡
例えば､ ある関数を作って､ それを呼び出すことにしましょう｡
1番と2番を取るようなものを追加すること｡
そして､ この中に｡
関数の定義を確認し､ ここでは num 1 を返すことにします｡
プラス無感覚に｡
なるほど｡
では､ このクラスメソッドは何をするのでしょうか？
もう少し見やすくするために､ これを最小化します｡
今､ この中に｡
プレイヤー1が物を追加するアクセス権を持っているかどうか見てみましょう｡
つまり､ 実行をクリックすると､ 3つのものが追加されると言うことです｡
2つの位置引数を取りますが､ 3つ与えられました｡
うーん｡
17行目にありますね｡
そこで､ これを呼び出すときに､ 2つのパラメータを与えている｡
しかし､ 実際には3つ手に入れたと書いてあり､ それはいろいろと追加したためだと予想されます｡
最初のパラメータは､ ちょうどここにあるようなものです｡
シールズとSEALDsは階級の象徴です｡
このプレイヤーキャラクターというのは､ 今までのものと似ているので､ そのクラスということですね｡
しかし､ 標準ではシールを使用することになっています｡
さて､ これを実行すると｡
5つ手に入れることができるのがわかると思います｡
オチ｡
しかし､ これを見ると､ ほとんど上のような感じですね｡
ただし､ セルフの代わりにCLSを使っています｡
でも､ これってクラスメソッドとしてどうなんだろう？
まあ､ 実際にはクラスのインスタンス化もせずに使えるからなんだけどね｡
お見せしましょう｡
例えば､ プレイヤー1をインスタンス化せず､ 単純にここに呼び出すとします｡
プレイヤー､ キャラクター､ ドットによる追加物｡
実行」をクリックすると
あれを見てください｡
私は5つです｡
実際のクラス上のメソッドです｡
クラスメソッドなのです｡
だから､ 面白いことができるんです｡
ついでに言うと､ クラスメソッドはあまり使われない｡
では､ なぜこれが必要なのか？
まあ､ 95％のクラスはクラスメソッドのようなものを使うことはないでしょうが､
これが役に立つ場合もあるでしょう｡
例えば､ ここでCLSを使って実際にオブジェクトをインスタンス化することができる｡
だから､ 例えばCLSと言えるのです｡
このクラスはプレイヤー・キャラクターで､
インスタンス化します｡
ここでランを打てば
あれを見てください｡
テディというオブジェクトをインスタンス化したのですが､ 年齢は5歳のはずです｡
では､ そうしましょう｡
これを持って｡
これをプレイヤー3と同じにする｡
そして､ プレイヤー3をここで行い､ ドットHで､ 実行をクリックします｡
私は5つです｡
つまり､ このクラスメソッドを使って作成された､ まったく新しいプレーヤーがここにあるのです｡
つまり､ クラスオブジェクトの属性を作成したのと同じように､ このat signを使ってクラスメソッドを作成することができたのです｡
また､ このようなことを行うには､ もうひとつ､ 静的な方法があります｡
そして､ staticメソッドは､ ここと全く同じように動作します｡
除く｡
このクラスやクラスへのアクセス権を持っていないので､ 上でやったようなことはできません｡
その代わり､ 何らかのメソッドを実行するだけです｡
こんな感じで､ いろいろと追加していく感じです｡
つまり､ 両者の違いは､ このCLSにパラメータでアクセスできないという考えだけなのです｡
そこで､ クラスの状態を一切気にしない静的メソッドなどを使うことになります｡
クラスの状態とは､ このようなものです｡
属性は本当にどうでもいいんです｡
これらの属性が気になる場合､ あるいは属性を修正したり変更したりする場合には､ クラスメソッドのようなものを使用します｡
さて､ このクラスメソッドとスタティックメソッドですが､ あまり見かけないものですね｡
でも､ Pythonのキャリアを通じて出会うかもしれないので､ お見せしたかったんです｡
あまりわかりにくいと思われたでしょうか｡
次のビデオでは､ 今までの復習をしたいと思います｡