如何在函数之前定义全局变量,然后在python中的函数内引用它?

时间:2013-03-20 00:00:33

标签: python global turing-machines

我刚用图灵机熟悉自己。我正在制作一个半精确的虚拟图灵机,但我遇到了一个看似简单的问题,我只知道有一个解决方案。我在网上研究但找不到满足我的问题的任何东西。

如何在函数中调用变量'l'。它必须是可调用的,因为如果我在函数中定义变量的初始值,当函数循环时它会将值重置为0.

这是我的代码:

blanktape = []
for x in range(1,251):
    x = ' '
    blanktape.append(x)

global l
l = 1
non = ' '
head = blanktape[l]
symbols = [3, 'ee', 'x']

def mconfigb():
    if head == non:
        blanktape[blanktape.index(head)] = 0
        l = l + 2

def mconfigc():
    if head == non:
        blanktape[blanktape.index(head)] = 1
        l = l + 2

def turingmachine():
        while l < len(blanktape) + 1:
            mconfigb()
            mconfigc()
        return blanktape

print turingmachine()

3 个答案:

答案 0 :(得分:0)

def function(input):
    global globvar
    ....

必须按功能声明它们。但是,我认为您应该将所有创建包装到turingmachine类中并使用实例变量。

答案 1 :(得分:0)

你需要把:

global l
函数本身(您可能想重新考虑变量命名约定,l不是一个好名字)。

例如:

xyzzy = 1

def fn():
    global xyzzy
    xyzzy = xyzzy + 1

答案 2 :(得分:0)

def mconfigb():
     global l

其他功能也可以这样做。