单个模块中的可重用代码

时间:2016-06-21 12:48:39

标签: python

我正在编写一个可以处理几个不同任务的python模块。这些任务共享某些代码片段,如下所示

if __name__ == '__main__:'
    task == sys.argv[1]
    if task =='task1':
        code block1
        code block2
        ...
    if task == 'task2':
        code block2
        ....
    if task == 'task3':
        some code
        code block1 
        ......

什么是最好的解决方案是不复制每个任务部门中的代码块而不将它们放入函数中,因为这些代码块会产生许多局部变量。

更新:我正在考虑Matlab中的一些内容,将abc.m行放入代码中,并在abc.m中运行代码块。我想知道是否有一种方法可以运行模块中某处保存的代码块,而不是一个函数(我更喜欢尽可能减少所有函数的副作用)

1 个答案:

答案 0 :(得分:1)

正如其他人所说,最好的解决方案可能是使用功能。如果您需要将大量变量从一个函数传递到另一个函数,您也可以使用此方法:

if __name__ == '__main__:'
    task == sys.argv[1]

    if task == 'task3':
        some code

    if task =='task1' or task == 'task3':
        code block1

    if task == 'task2':
        code block2

但我强烈建议考虑另一种解决方案。您的代码块应该代表彼此独立工作的某些任务,然后是:函数!我提出的解决方案变得非常难看,并且很难跟踪哪些代码块提供了哪些变量。