2016-09-20 2 views
0

定期的なスクリプトに「定数」変数があり、実行ごとに再宣言すると問題はありますか?私は定数が一定であるとは限らないことを知っている定期的に実行されるPythonの「定数」再宣言

#!/usr/bin/env python 
PATH_PATTERN = '/home/%s/config.xml' 
PATH = None 

def periodic_execution(function): 
    PATH = PATH_PATTERN % get_user() 

    interval_in_sec = 1000 
    threading.Timer(interval_in_sec,periodic_execution,[function]).start() 
    function() 
    # in function i use the PATH variable 

def main(): 

    periodic_execution(tasks) 

if __name__ == '__main__': 
    main() 

...

+1

それ以上は一定ではありません... – Dartmouth

+2

あなたが意味するものを示す小さなコード例を挙げてください。 –

+0

更新済み!申し訳ありません.. – tmsblgh

答えて

0

あなたはまた、Pythonでのキーワードグローバルを見ていましたか?このlinkを参照してください。関数内の変数を変更する必要があります。

+0

これは答えとしてひどいです。コメントとして投稿すると問題ありません。 –

3

注意!示されたコードでは、PATH変数はグローバル変数ですが、にはを使用する前にそれを宣言することなく代入します。global => Pythonは実際には関数内にローカルPATH変数を作成しますが、あなたは期待しています。

あなたは書く必要があります。

def periodic_execution(function): 
    global PATH 
    PATH = PATH_PATTERN % get_user() 

をグローバル変数を変更します。

しかし、これは決して定数ではありません。たとえあなたが読み込み専用のプロパティを構築できたとしても、AFAIKはPythonで真の定数を宣言することはできません。

関連する問題