Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python时间旅行模式/反模式生成C代码_Python - Fatal编程技术网

使用python时间旅行模式/反模式生成C代码

使用python时间旅行模式/反模式生成C代码,python,Python,我正在寻找python中的时间旅行模式 我希望能够执行一段带有变量的代码,这些变量可能会在执行过程中被更改,如果它们在执行过程中被更改,那么之前的执行应该是不同的 以下是一个不起作用的示例: def foo(vars): aIsHere = False bIsHere = False if aIsHere: print "int a = 0;" if bIsHere: print "int b = 0;" for var i

我正在寻找python中的时间旅行模式

我希望能够执行一段带有变量的代码,这些变量可能会在执行过程中被更改,如果它们在执行过程中被更改,那么之前的执行应该是不同的

以下是一个不起作用的示例:

def foo(vars):
    aIsHere = False
    bIsHere = False
    if aIsHere:
        print "int a = 0;"
    if bIsHere:
        print "int b = 0;"
    for var in vars:
        if var == "a":
            aIsHere = True
        if var == "b":
            bIsHere = True
        print "%s++;"%var
我想这个代码产生有效的C

我知道对于这种特定的情况有很多解决方案,但是我希望有一种模式适用于一般情况,在这种情况下,在之前编写的代码被执行之前,其他代码被执行之后,但是一些变量来自后面的代码

更确切地说,我想要

  • 任何“x++;”之前的“int a=0;”和“int b=0;”
  • 在foo中循环一次vars
  • 当且仅当“a”在变量中时,才有“int a=0”;当且仅当“b”在变量中时,才有“int b=0”

  • 你为什么要这样做?您可以得到与我认为您使用该代码所暗示的相同的输出,而不需要花哨的时间旅行代码:)


    如果python有一个时间旅行模块,我宁愿抓取明天的股市数据。你为什么要这样做?你可以得到与我认为你用这段代码暗示的相同的输出,而不需要花哨的时间旅行代码:)。有很多,因为人们对如何进行以及需要多少自动化有不同的想法。最常见的用法是在一大块固定HTML中插入一些文本或数字来创建网页,但它们可能比这更复杂。人们可以使用同样的技术让python编写一个C程序。如果,他想,这样一台机器实际上是不可能的,那么它肯定有有限的可能性。所以我要做的就是计算出它到底有多不可能,把这个数字输入有限不可能发生器,给它一杯新鲜的热茶。。。打开它!说真的,这实际上是关于调用
    foo()
    或其他模板的时间。他应该只在
    变量
    完成时调用它,而不是在之前。上面的代码就是一个简单的例子。在我的实际案例中,vars是一个复杂的树结构,我必须遍历它,“a++;”和“b++;”是许多复杂的嵌套if语句(可能)使用“a”和“b”)。我试图避免两次遍历vars结构,我想要一种通用的方法来完成它,而不是针对我的情况。
    def foo(vars):
        if 'a' in vars:
            print "int a = 0;"
            print "a++;"
    
        if 'b' in vars:
            print "int b = 0;"
            print "b++;"