Python:如何使变量在不同的函数中保持一致?

时间:2015-05-17 04:50:50

标签: python variables input scope

我还在开始如何用Python编程,我只是想知道如何在不同的函数中使变量保持一致。例如,我所做的功能修改了一个变量。然后,我在另一个函数中再次使用了该变量。如何使修改后的变量出现在第二个函数中?当我尝试它时,第二个函数使用变量的原始值。如何让它使用修改后的值?我需要为此使用全局变量吗?

另外,建议在函数内部使用input()函数吗?在它们内部使用它有任何副作用吗?

4 个答案:

答案 0 :(得分:1)

变量需要由两个函数共有的范围共享,但这不一定是全局范围。例如,你可以将它们放在一个类中:

class MyClass:
    def __init__(self):
        self.x = 10
    def inc(self):
        self.x += 1
    def dec(self):
        self.x -= 1

mc = MyClass()
print mc.x # 10
mc.inc()
print mc.x # 11
mc.dec()
print mc.x # 10

变量应该存在的确切范围取决于您尝试做的事情,而您的问题并不清楚。

答案 1 :(得分:0)

使用 global 变量来访问整个代码中的变量。

演示:

>>> a = 10
>>> def test():
...   global a
...   a = a + 2
... 
>>> print a
10
>>> test()
>>> print a
12
>>> 

在类中,使用类变量来访问该类的所有实例。或者使用只能访问类的相应实例的实例变量。

答案 2 :(得分:0)

您可以在函数中使用return

x = 3

def change1():
    x = 5
    return x

x = change1()

def change2():
    print(x)

change1()
change2()

答案 3 :(得分:0)

您可以使用函数顶部的global关键字让python知道您正在尝试修改全局分数中的变量。或者,您可以使用OOP和类在类函数中维护实例变量。

x = 5

def modify():
    global x
    x = 3

modify()