Python(基礎編:クラス)
ここでひっかかって、もう瀕死状態となった初心者も多いでしょう。実は私の心もここでズタズタになりました。今でも直視したくないですが、勉強します。
・クラスとはデータと処理をまとめたもの。
・クラスの中の変数はアトリビュートと呼びます。
・クラスの中の関数はメソッドと呼びます。(defでつくるもの)
クラスを作成する
# class名の初めは大文字
class Class3B:
def avg(self):
print((80 + 70) / 2)
・関数とクラスの中のメソッドの違い
関数:def 〇〇()
かっこのなかに引数がなくてもいける。
メソッド:def 〇〇(self)
かっこのなかに必ず引数が必要。なければselfを入れる。
・クラスの使い方
クラスはインスタンス化されないとつかえない。
a = Class3B()
↑を追加すると、インスタンス化(実体化)されたことになる。
a.avg()
インスタンス化されたので実行。
まとめてかくと👇
# class名の初めは大文字
class Class3B:
def avg(self):
print((80 + 70) / 2)
# インスタンス化
a = Class3B()
# クラスの実行
a.avg()
75.0
外から数字を渡して、クラスを使い回ししたい。
引数を追加して、具体的な数値を外から入れる。
# class名の初めは大文字
class Class3B:
def avg(self,math,english):
print((math + english) / 2)
# インスタンス化
a = Class3B()
# クラスの実行
a.avg(80,70)
75.0
# class名の初めは大文字
class Class3B:
def avg(self,math,english):
print((math + english) / 2)
# インスタンス化
a = Class3B()
# クラスの実行
a.avg(80,70)
# アトリビュートを定義
a.name = 'SOZ'
print(a.name)
75.0
SOZ
・コンストラクタとは
インスタンス化するときに自動的に実行されるメソッドのこと。
初期化メソッドともいう。
記述方法(下では名前のアトリビュートを定義しています)
def __init__(self):
self.name = ""
クラス内に入れる。
class Class3B:
# 初期化メソッド(コンストラクタ)
def __init__(self):
self.name = ""
def avg(self,math,english):
print((math + english) / 2)
a = Class3B()
a.avg(80,70)
# インスタンス化
a.name = "SOZ"
print(a.name)
# インスタンス化
b = Class3B()
b.name = "マッチョマン"
print(b.name)
75.0
SOZ
マッチョマン
とても難しい。掘り下げないことにしよう!
初期化メソッドに引数追加
class Class3B:
def __init__(self,name):
self.name = name
def avg(self,math,english):
print((math + english) / 2)
a = Class3B("SOZ")
print(a.name)
b = Class3B("マッチョマン")
print(b.name)
SOZ
マッチョマン
これ以上無理だ!今日はここまでぇ!
いいなと思ったら応援しよう!
なにとぞ なにとぞー