python④
python4日目~
classとかinit関数とか全然わからなすぎて理解が追い付かないw
▼用語
・メソッド:クラス内で定義されている関数
・属性:クラスの中に定義されている変数
①ローカル変数とグローバル変数
・ローカル変数
関数の中に定義した変数のこと。
関数の外ではローカル変数を使うことができない。
関数の外に定義した変数のこと。
関数の中でも外でも使用可能。
②クラス
クラスは設計図のようなもの
大規模な開発の時にとても役立つらしい。
以下例
class Person:
def __init__(self,name,nationality,age):
self.name = name
self.nationality = nationality
self.age = age
##self.***で定義してる変数を属性と呼ぶ
def say_hello(self):
print("{}hello".format(self.name))
#インスタンス化(実体化)
takeshi = Person("Tanaka","jp","25")
#personという設計書をもとにtakeshiを実体化する。
print(takeshi.say_hello())
これで出力できると思ったけどpycharmではできないのか・・・?
間違えてる?まぁいったん理解用なので・・・。
この処理の流れとしては以下。
1. Personというclassを定義
2. Personクラスの中に、__init__関数とsay_hello関数を定義
__init__関数は初期化の関数(詳しくは後述)
say_hello関数は引数を使ってprint文で出力させる関数
3. クラスの作成が終わったので、インスタンスを作成。
※インスタンスとはクラスを実体化したもの。
※クラスの関数や変数を使うためのもの。
ここのサイトが分かりやすかった。(https://techacademy.jp/magazine/23289)
④selfを書いてあるので、インスタンスがselfに入り、インスタンスで書いておいた引数を順番に代入していく。
これを完璧に理解するには慣れが必要か…。
③__init__関数と__call__関数について
特別な使い方をする関数が存在するらしい。主にこの2つ?
▼__init__関数
初期化のためのメソッド
クラスをインスタンス化するときに必要なメソッド
インスタンス生成時に自動で呼ばれるらしい
引数の一番最初に"self"と入れるのが重要
└selfにはインスタンス自体が渡される。
※selfは呼び出したインスタンス自身のこと
▼__call__関数
これは単純に呼び出し方が特殊らしい
インスタンス名(__call__)でも呼べるが、インスタンス名()でも呼び出せる
とりあえずこんな感じかな~
次に躓くのはまたこれが出てきた時と自分で何かひねり出す時だ。
▼参考
init関係
https://qiita.com/ishigen/items/2d8b6e6398743f2c8110
https://qiita.com/wakoit/items/659dd0fdbb16b214454f
インスタンスとは