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://techacademy.jp/magazine/24530#:~:text=__init__%E3%81%AF%E3%80%81%E3%82%AF%E3%83%A9%E3%82%B9,%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E3%81%99%E3%80%82&text=%E4%BE%8B%E3%81%88%E3%81%B0%E3%80%81%E3%80%8C%E4%BA%BA%E3%80%8D%E3%81%A8%E3%81%84%E3%81%86%E6%8A%BD%E8%B1%A1,%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82

https://uxmilk.jp/39906

https://qiita.com/ishigen/items/2d8b6e6398743f2c8110

https://qiita.com/wakoit/items/659dd0fdbb16b214454f

 

インスタンスとは

https://techacademy.jp/magazine/23289