我是python和编程的新手,所以这看起来像是一个愚蠢的问题。当我在一个函数中定义变量时,我无法在另一个函数中访问它。例如:
def getname():
name = raw_input("What is your name?")
print("Ok," + name)
def getage(name):
age = raw_input("What is you age," + name)
print ("Great!")
getname()
getage()
当我运行它时,它说“全局名称'名称'未定义”。对不起,如果这是一个非常愚蠢的问题。我之前没有真正编程, 感谢。
答案 0 :(得分:5)
您可以返回name
并将其传递给另一个函数,函数中的变量对于它们声明的函数是本地的,除非您使用global
关键字但返回是更好的选项:< / p>
def getname():
name = raw_input("What is your name?")
print("Ok," + name)
return name # return the name so we can use it later
def getage(name):
age = raw_input("What is you age," + name)
print ("Great!")
name = getname() # assign name to return value from getname
getage(name) # pass it to getage
python practice-book有一些不错的教程。
答案 1 :(得分:1)
可以将变量定义为具有全局或局部范围。使用全局变量,虽然它不是&#34;错误&#34;本身,增加了软件的整体耦合,并使其更难维护。
因此,使用局部变量,您可以选择在不同的软件(函数,对象,编程语言提供的任何构造)之间共享哪些变量,以及哪些变量应保持对该函数的私有。
如果一个函数需要另一个函数的变量,您可以考虑让第一个函数返回该变量,并将其作为输入参数传递给第二个函数。但是,您还应该考虑这两个函数是否首先不属于一起。
由于您不熟悉编程,我建议您关注耦合和内聚,这两个软件质量是这些设计决策的基础。