在python中,是否有可能使用预定义变量控制流,例如C

时间:2017-03-06 02:16:33

标签: python c

诸如python之类的脚本和诸如C之类的高级语言在这种行为上看起来不同但我想知道有可能的方式或其他方式来实现这一点。

在我的python脚本中,从一个角度来看,我想看看Monte-Carlo模拟的过程,看看发生了什么,在另一点上,我想运行动态并在最后看到最终结果。目前可以通过更改以下部分来实现。但是,如果我要使用两个不同的main.py,那将非常麻烦,因为无论何时更改文件中的某些内容,您都需要更改另一个文件中的相同部分。本方法如下。 这是动画脚本的结构,它在模拟过程中显示每一帧

import python_animation_modules
import ...

def init():
  bla, bla
  return lines,

def simulation():
  globals
  bla, bla
  set_lines() - redefine data using set_data
  return lines,

animation.FuncAniaion(..frames=Nstep..)

plt.show()

我可以改变这个以显示最后一个数字。

def init():
  bla, bla
  return lines,

while (i<Nax_num):
#def simulation():
#  globals
  bla, bla
  set_lines()       # redefine data using set_data
  #return lines,

#animation.FuncAniation(...MAX_num.)
plt.show()

是否有可能使用预处理器或其他精密技术的方式 在python中。在C中,这是可能的,

#define DYNAMICS

#ifndef DYNAMICS
while( i< MAX_num):
#else
def simulation():
#  globals

1 个答案:

答案 0 :(得分:1)

您似乎想要使用#IFDEF来避免重复代码......但为什么不明确地使用代码呢?类似的东西:

def simulate():
    bla, bla
    set_lines()

def simulation():
    globals
    simulate()
    return lines,

def dynamics():
    animation.FuncAniation(...MAX_num.)

def no_dynamics():
    while (i < MAX_num):
        simulate()

if DYNAMICS: dynamics()
else: no_dynamics()
plt.show()

根本想法是:将公共位分解为它自己的例程,然后从包含特定于案例的代码的包装器中调用它。