Pythonのモジュールとクラスの覚書

前回のPythonのリストとタプルの違いで、書いたとおり、Pythonの勉強をはじめました。相変わらず、分からないことばかりなのですが、せっかく覚えかけのPythonのモジュールとクラスの知識をアウトプットする形で覚書として書かせていただきます。

モジュール

Pythonには(Python以外の言語もあるので、「Pythonも」という表現が正しいかもしれませんが・・・)、様々な関数を汎用的に利用するために、モジュールというものがあります。

簡単にいうと、スクリプトを一つ(複数でもいいんですけど・・・)のファイルにまとめるという感じでしょうか?

下記のサンプルソースをmodule1.pyとします。

def Hello(name):
	print "Hello " +name+ "!"

下記のソースコードをhello.pyとします。

import module1

module1.Hello("eriver")

下記のように実行すると、「Hello eriver!」と出力されます。

>> python hello.py
Hello eriver!	#実行結果

モジュール名の取得

また、実行中のモジュール名を調べるには、__name__というグローバル変数を用います。

module1.pyに、print __name__を追加します。

def Hello(name):
	print "Hello " +name+ "!"
	print __name__

下記のように実行すると、「Hello eriver!」の下にモジュール名が表示されます。と出力されます。

>> python hello.py
Hello eriver!	#実行結果
module1	#実行結果

直接Pythonからスクリプトが実行された時は、__name__は、__main__となります。スクリプトがPythonから直接実行されているかどうかを調べる場合の条件式があります。

if __name__ == "__main__":

クラス

クラスは、オブジェクト指向の基本的な概念ですが、クラスを作るうえでコンストラクタというものに必ず出会いますよね?

コンストラクタ

コンストラクタは、初期化を行うためのメソッドと理解していますが、 Pythonのコンストラクタは、__init__です。下記をhelloclass.pyとします。

class Hello:
	name = ""

	def __init__(self,name):
		self.name = name

	def printData(self):
		print "Hello, "+str(self.name)

eriver = Hello("eriver")
eriver.printData()
>> python helloclass.py
Hello, eriver	#実行結果

大体、ここまでですが、ボチボチと理解は深まっていると思います。なお、Python初心者ですので、間違いなどありましたら、ご指摘いただければ幸いです。