我在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’
答案 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')
,或查看this和this问题。
只有在需要变量时才使用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()