Pythonで必要最低限な先頭行の記述

Python
スポンサーリンク

「とりあえずPythonでちょっとプログラムを作りたい」といったとき、適当に書けば動くので問題ないのですが、個人的には気持ちが悪いのです。

C言語でいう冒頭の#include<stdio.h>…のような基本的に書いておくといいPythonの必要最低限な記述をまとめました。(まとめたと言っても見ればわかる程度ですが)

わたしの中で、必要最低限な先頭行の記述は、3種類ありました。
1.最低限動かしたいとき
2.直接実行したいとき(LinuxやUNIX環境)
3.モジュールとして使いたいとき(別ファイルから呼び出したいとき)

とりあえず動かしたい時は1でOKです。

スポンサーリンク

最低限動かしたいとき

最低限は、こちら。

# -*- coding: utf-8 -*-
# 以下プログラム
 :
 :

冒頭に

# -*- coding: utf-8 -*-

をつけるだけです。(*の両側はハイフンです)

意味は「このソースの文字コードはUTF-8ですよ」という意味です。
coding: の後は文字コード名を記述します。
お使いの環境によって変化すると思いますが、OS問わずUTF-8なら日本語でも問題ないので安心かと思います。

直接実行したいとき(LinuxやUNIX環境)

LinuxやUNIX環境などでPythonプログラムを直接実行したいときは、次のような記述がひな型となります。

Pyhton3環境の場合

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 以下プログラム
 :
 :

Python2環境の場合

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 以下プログラム
 :
 :

直接実行というのは、例えばtest.pyというPythonプログラムをコマンドラインから実行する場合

python test.py[ENTER]

としますが、これを直接

test.py[ENTER]

で実行したい場合を言います。

もちろん直接実行したいファイルtest.pyの実行許可

chmod +x test.py[ENTER]

で実行許可しておく必要があります。

先頭の

#!/usr/bin/env python3

の部分は、Python実行環境へのパスで「#!」で始まる行のことをshebangと呼ばれています。

モジュールとして使いたいとき(別ファイルから呼び出したいとき)

最後は、モジュールとして使う場合の記述です。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def test():
	print('Hello! from Python.')

if __name__ == '__main__':
	test()

if __name__ == ‘__main__’:

の記述がそれです。
def test()で関数宣言していますが、これはあくまで説明用ですので無くてもOKです。

if __name__ == ‘__main__’:については、以下のリンクに詳しく書いてあります。

【Python入門】モジュールを扱う際に重要な「if __name__ == ‘__main__’:」とは?

「モジュールとして使う」というのは、分かりやすく言えば、上記の関数testを別ファイルから実行したいときのことを指します。

上記ファイルを単独で実行すると関数testが実行され、画面には

Hello! from Python.

と表示されます。要するにif __name__ == ‘__main__’が実行された形です。

このファイルをhoge.pyとして保存し、関数testを別のファイルから再利用したいときは、利用したいファイルで

import hoge
test()

とすれば、簡単に利用することができます。
こういう作りを、Pythonではモジュール化と呼んでいます。
importを使って呼び出せる訳です。

以上、Pythonで必要最低限な先頭行の記述でした。

コメント