9.3.2モジュールをインポートする
・特定のメンバーだけをインポートする

構文 from...import命令(第一構文)
module :モジュール名
member :関数/クラス名
from figure import get_triangle

print(get_triangle(10, 5))
教科書で求められたのはの文なんですが、これだけだとエラーでます。

この前に何か必要なようなんですが、それが具体的にわからないですね。

エラーを消せないです。

構文 from...import命令(第2構文)
from module import *
module: モジュール名
from figure import *

print(get_triangle(10, 5))

・「import *」でのインポートを制限する
(1)__all__変数を定義する
__all__ = ['hoge', 'foo', 'bar'] def hoge():~ def foo():~ def bar():~ def piyo():~

このPythonコードには以下の要素が含まれています。

  1. __all__ = ['hoge', 'foo', 'bar']: この行は、このモジュールを他のスクリプトがfrom module import *としてインポートしたときにどの名前がインポートされるかを制御します。この場合、'hoge', 'foo', 'bar'という名前の関数のみがインポートされます。'piyo'は含まれていませんので、import *でインポートされません。

  2. def hoge():~: これは、hogeという名前の関数を定義しています。~は恐らく関数の内容を省略していることを示しています。

  3. def foo():~: これは、fooという名前の関数を定義しています。

  4. def bar():~: これは、barという名前の関数を定義しています。

  5. def piyo():~: これは、piyoという名前の関数を定義しています。ただし、__all__には含まれていませんので、このモジュールをfrom module import *としてインポートしたときにはインポートされません。ただし、from module import piyoのように明示的に指定すればインポート可能です。


(2)「_名前」で命名する
def hoge():~

def foo():~

def _piyo():~
  1. def hoge():~: これは、hogeという名前の関数を定義しています。~は恐らく関数の本体が省略されていることを示しています。

  2. def foo():~: これも同じく、fooという名前の関数を定義しています。

  3. def _piyo():~: これは、piyoという名前の関数を定義していますが、関数名がアンダースコア()で始まっています。Pythonでは、名前がアンダースコアで始まる変数や関数はプライベートとされ、直接アクセスすることは推奨されません。この関数はこのモジュール内から主に使用され、他のモジュールから直接呼び出すことは想定されていません。しかし、技術的には他のモジュールからもアクセス可能です。

・モジュールに別名を付与する
構文import...as命令
import module as alias
module :モジュール名
alias :別名
import figure as f

print(f.get_triangle(10, 5))
  1. import figure as f: これはPythonのimport文を使用して、figureという名前のモジュールをインポートしています。そして、そのモジュールをfという短い名前で参照できるようにしています。これにより、モジュール名を毎回完全に書く必要がなくなり、コードが短くて読みやすくなります。

  2. print(f.get_triangle(10, 5)): ここでは、fという名前でインポートしたfigureモジュールのget_triangleという関数を呼び出しています。この関数には引数として10と5を渡しており、その戻り値(つまり三角形の面積)がprint関数によってコンソールに出力されます。


正直に言います

訳が分かりません。