Python"常数"每次定期运行都要重新开始

时间:2016-09-20 07:12:43

标签: 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()

我知道常数不会是恒定的......

2 个答案:

答案 0 :(得分:3)

<强>当心!在显示的代码中,PATH变量是全局变量,但在periodic_execution中,您在使用前PATH指定global并且未将其声明为def periodic_execution(function): global PATH PATH = PATH_PATTERN % get_user() =&gt; Python实际上在函数中创建了一个局部PATH变量,并保持全局不变,这肯定不是你所期望的。

你应该写:

<div id="hide" class="center">
   <h2>Profile name</h2>
   <h3>Designation</h3>
</div>

更改全局变量。

但这绝不是常量。 AFAIK你不能在Python中声明真正的常量,即使你可以构建只读属性。

答案 1 :(得分:0)

您是否也在Python中查看关键字 global ?见link。由于您更改了函数中的变量,因此这是必要的。