私はPythonモジュールを持っています。これには、通常の関数定義とクラスが含まれています。何らかの理由でコンストラクタを呼び出して値を渡すと、クラス変数が更新されません。Pythonモジュール内でクラスを宣言する
私のモジュールはVODControl(VODControl.py)と呼ばれています。私がモジュール内で宣言したクラスはDRMPathと呼ばれます。 DRMPathクラスには、ログファイルと結果の2つのインスタンスvairablesがあります。 logfileは文字列で、結果は辞書です。
私のコンストラクタは次のようになります。私は私が私の他のPythonスクリプトからインポートするとき
def __init__(self, file):
self.logilfe = file
self.results['GbE1'] = ""
self.results['GbE2'] = ""
self.results['NetCrypt'] = ""
self.results['QAM'] = ""
:
import VODControl
私が使用して呼び出しは以下の通りです:
d = VODControl.DRMPath('/tmp/adk.log')
しかし、logfileインスタンス変数の値を出力すると、コンストラクタに渡したもので更新されません:
print d.logfile
印刷後、それでも空の文字列です。何がありますか?
「logilfe」の入力ミスですか? – ChristopheD
現在、[builtinファイルタイプ](http://docs.python.org/library/stdtypes.html#file-objects)をシャドーイングしているので、 'file'パラメータを' fname'などにリネームすることをお勧めします。 – Glider
+1正確な*コードを投稿するために+1します。これにはlogilfeのタイプミスが含まれます。あまりにも多くのポスターは、書き込むことを意味するスニペットを挿入しますが、キーのタイプミスやその他のboo-booは省略します。 – PaulMcG