帮助定义全局名称

2024-06-07 04:55:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码:

def A():
    a = 'A'

    print a

    return

def B():

    print a + ' in B'

    return

当B()被输入到interpeter中时,我得到

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "<module1>", line 9, in B
NameError: global name 'a' is not defined

我该如何定义?当B()被输入到解释器中时,我希望最终结果是“A in B”

编辑: 如果可能的话,我想把a的定义保持在a()之内。


Tags: 代码inmostreturn定义deflinecall
3条回答
a = 'A'    
def B():    
    print a + ' in B'
def A():
    global a
    a = 'A'
    print a

def B():
    global a
    print a + ' in B'

A()
B()

这张照片:

A
A in B

顺便说一句:在函数的末尾永远不需要一个简单的“return”。

我对Python还不太熟悉,您可能想对下面的代码稍加了解,但是您是否考虑将变量a和函数a()和B()作为类的成员?

class myClass(object):

    def __init__(self):
        self.a = ''

    def A(self):
        self.a = 'A'
        print self.a

    def B(self):
        print self.a + ' in B'


def main():
    stuff = myClass()
    stuff.A()
    stuff.B()

if __name__ == '__main__':
    main()

当我将上面的代码保存到一个文件中并运行它时,它似乎可以按预期工作。

相关问题 更多 >