Pythonのソースコードで関数の書き方が違う場合があるのはなぜかという話(モジュールの読み込み)

最近はPython(プログラミング言語)をちょこちょこ書いています。まだTurtleでお絵かきして遊んでいる程度で、たまにYoutubeに動画を上げたりもしています。
こんなのとか↓

さて、一応参考書は手元にあるのですが、それでも分からないときはWebサイトを検索してソースコードの書き方などを参考にすることもあります。サイトによっては同じ処理でもソースコードの書き方が違うことはあります。ただ書き方ではなく、書式自体がまったく違うというケースもあります。

例えば、「mathモジュール」を読み込んで「sin()関数」を使うというケースでは
a = math.sin(i)

という書き方の他に
a = sin(i)

という書き方も出てきます。
そしてmathモジュールの読み込み方に関しても、
import math

from math import *
(またはsin()関数だけならfrom math import sin)

という書き方が出てきます。そしてこのimportの書き方に対応した関数の書き方をしなければ、sin()関数を使ってもエラーとなってしまいます。ちゃんと使うには
  • 「import math」と書いてmathモジュールを呼び出した場合は「a = math.sin(i)」
  • 「from math import *」と書いて呼び出した場合は「a = sin(i)」
と書く必要があります。

両方ともちゃんとsin()関数は読み込めているので処理自体は同じになるわけですが、後者の方は「math.」と書かなくてもいいので楽といえば楽です。しかしこれは弊害もあって、いくつもモジュールを読み込んだ場合、その中に同じ名前の関数があると何のモジュールの関数を使っているのか分からなくなってしまいます。
(実際にはモジュールを読み込む順番で何の関数が使われるかが決まるとかなんとか?)

自分は初歩の段階でこの点が良く分からずに少しつまづいてしまいました。こういうことを踏まえておけばもう少しスムーズに調べものが出来たかと思います。
(まぁ初歩のうちはアレコレ調べ過ぎずに、参考書などをやり切った方がいいと思いますが)

実際にモジュールを読み込んで使うときは、ケースバイケースで使いやすく後から読んでも分かりやすい方法を選べばいいかと思います。

<参考資料>
6. モジュール (module) — Python 3.6.1 ドキュメント

コメント

スポンサーリンク


このブログの人気の投稿

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplotでプロットなどの色をcolornameの指定で変更する

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法