如何在另一个函数中访问函数变量

时间:2015-09-28 12:00:51

标签: python

我在python中将多个变量调用到另一个函数时遇到了一个小问题。就像我必须在yyy()中访问xxx()变量的变量一样。帮我做这个。?

示例:

qpycore_chimera.cpp: In member function ‘void Chimera::set_flag()’:
qpycore_chimera.cpp:557: error: ‘struct _pyqt4ClassTypeDef’ has no member named ‘qt4_flags’

5 个答案:

答案 0 :(得分:5)

从第一个函数返回它们并在第二个函数中接受它们。示例 -

def xxx():
    a=10
    b=15
    c=20
    return a,b

def yyy():
    a,b = xxx()
    print a        ### value a from xxx()
    print b        ### value b from xxx()

yyy()

答案 1 :(得分:4)

你不能。在函数中创建的变量是该函数的本地变量。因此,如果您希望函数yyy获取函数xxx中定义的某些变量的值,那么您需要从xxx返回它们,如Sharon Dwilif K的回答所示。请注意yyy中变量的名称无关紧要;你可以写:

def yyy():
    p, q = xxx()
    print p        ### value a from xxx()
    print q        ### value b from xxx()

它会产生相同的输出。

或者,您可以创建custom class。简而言之,类是数据的集合以及对该数据进行操作的函数。类的函数称为方法,数据项称为属性。类的每个方法都可以有自己的局部变量,但它也可以访问类的属性。例如

class MyClass(object):
    def xxx(self):
        self.a = 10
        self.b = 15
        self.c = 20

    def yyy(self):
        self.xxx()
        print self.a
        print self.b

#Create an instance of the class
obj = MyClass()

obj.yyy()

<强>输出

10
15

有关Python中的类的更多信息,请参阅链接的文档。

答案 2 :(得分:1)

试试这个:

def xxx():
    a=10
    b=15
    c=20
    return a, b

def yyy():
    a, b = xxx()
    print a
    print b

yyy()

或者这个:

def xxx():
    global a, b
    a=10
    b=15
    c=20

def yyy():
    print a
    print b

xxx()
yyy()

有关详细信息,请使用help('return')help('global'),或查看thisthis问题。

只有在需要变量时才使用global可以在任何地方使用,或者你需要函数返回其他东西。因为修改全局变量会破坏模块性。

答案 3 :(得分:0)

上面人们给出的答案是正确的。但从设计角度来看,这不是正确的。方法局部变量意味着是本地的。如果有一些东西需要在文件或一组方法中共享,我建议你使用文件级变量或常量。

答案 4 :(得分:-1)

使用global关键字,如下例所示:

global a=0
global b=0
global c=0

def xxx():
    a=10
    b=15
    c=20
    return a,b

def yyy():
    print a
    print b 
    xxx()