Python(パイソン) ,ソースプログラムリスト あり ,プログラム作ってみた ,[別のモジュールへ、複数の値をまとめて渡す、クラスを使って]
Python(パイソン) プログラム作ってみた インデックス へ
2024.8.18 presented in [note] ( //note.com/runningWater/ )
2024.8.24 rewritten
----------
1 はじめに
これ以降に記述されている内容は、このようなコンピューター・プログラムを制作した、というような事を、ただ、述べているに過ぎない。
以下の記述を読んだ人が、それを単に参考にする、というのであれば、問題は無いと、思われる。
しかし、記述されている内容に沿って、その人が、そこに記されているのと同様の制作や作業を行った際に、その制作、作業、コンピューターの作動の結果、使用されたコンピューター等、様々な方面において、何らかの問題が発生しない、という保証は、全くない。
その制作、作業、コンピューターの作動の結果、その人や、その人が所属している組織、その人が使用した様々な機器、インフラストラクチャー等の、身の上にどのような事が起ころうとも、私は一切、責任を負わない。
このプログラムは、Python(パイソン) 言語を使って、記述されている。
----------
2 どんなものを作ったのか
あるモジュールから、別のモジュールの中にある関数を呼び出す際に、多くのデータを手渡して行いたい、というような事は、よくある事だと思う。
そのような時には、それぞれのデータを、関数呼び出しの引数に指定し、というような方法をとるのが、一般的だろうと思うが、そのデータの個数が多くなると、関数呼び出しの記述量が増えてしまい、といったような問題が起こるのでは、と、思った。
そこで、その問題を回避するために、以下の例にあるように、クラスを用いて、関数呼び出しを行う、という方法を、ためしにやってみた。
----------
3 プログラムの内容
下記にあるような、3個のモジュールを、作ってみた。
[ModuleA] は、[クラス DataToBeHandedOver] に属するインタンスの上に、値を盛って、[ModuleB] にそれを手渡しながら、関数のコールを行う、というようなかたちになっている。
===============
ファイル名 [ModuleA.py]
import DataToBeHandedOver
import ModuleB
# -------------------------------
MODULE_NAME = "ModuleA"
function_name = "process_start"
print ( "--------------------------------" )
print ( "Enter into, module = " + MODULE_NAME + " , function = " \
+ function_name )
print ( "--------------------------------" )
# construct a instance of Class DataToBeHandedOver
ins_DataToBeHandedOver = DataToBeHandedOver \
.DataToBeHandedOver ( )
# set value into the instance
ins_DataToBeHandedOver.iv_value_1 = "value of iv_value_1"
ins_DataToBeHandedOver.iv_value_2 = "value of iv_value_2"
ins_DataToBeHandedOver.iv_value_3 = "value of iv_value_3"
# call function of ModuleB, handing over above values
ModuleB \
.process_1 ( ins_DataToBeHandedOver )
----------
===============
ファイル名 [DataToBeHandedOver.py]
----------
class DataToBeHandedOver :
CV_CLASS_NAME = "DataToBeHandedOver"
#------------------------------------------------------------
# definition of constructer
def __init__( self ) :
methode_name = "constructer"
self.iv_value_1 = " "
self.iv_value_2 = " "
self.iv_value_3 = " "
----------
===============
ファイル名 [ModuleB.py]
----------
MODULE_NAME = "ModuleB"
def process_1 ( arg_ins_DataToBeHandedOver ) :
function_name = "process_1"
print ( "--------------------------------" )
print ( "Enter into, module = " + MODULE_NAME + " , function = " \
+ function_name )
print ( "--------------------------------" )
print ( "arg_ins_DataToBeHandedOver.iv_value_1 = " \
+ arg_ins_DataToBeHandedOver.iv_value_1 )
print ( "arg_ins_DataToBeHandedOver.iv_value_2 = " \
+ arg_ins_DataToBeHandedOver.iv_value_2 )
print ( "arg_ins_DataToBeHandedOver.iv_value_3 = " \
+ arg_ins_DataToBeHandedOver.iv_value_3 )
----------
[ModuleA] を起動してみたら、以下のように、表示されたので、どうやら、データの引き渡しが、適切に行われているようだ。
Enter into, module = ModuleA , function = process_start
Enter into, module = ModuleB , function = process_1
arg_ins_DataToBeHandedOver.iv_value_1 = value of iv_value_1
arg_ins_DataToBeHandedOver.iv_value_2 = value of iv_value_2
arg_ins_DataToBeHandedOver.iv_value_3 = value of iv_value_3
----------
Python(パイソン) プログラム作ってみた インデックス へ