見出し画像

Python(基礎編:クラス)

ここでひっかかって、もう瀕死状態となった初心者も多いでしょう。実は私の心もここでズタズタになりました。今でも直視したくないですが、勉強します。

・クラスとはデータ処理をまとめたもの。
・クラスの中の変数はアトリビュートと呼びます。
・クラスの中の関数はメソッドと呼びます。(defでつくるもの)

画像1

クラスを作成する

画像2

# 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
マッチョマン

これ以上無理だ!今日はここまでぇ!



なにとぞ なにとぞー