这可能是一个简单的答案,可能与全局变量有关吗?如何从一个功能获得用户输入的数据,并使其能够在同一程序中与其他功能一起调用和输出。例如:
hydro = False
def main():
medium = input("soil or hydro")
def second():
if medium == "hydro":
hydro = True
main()
second()
答案 0 :(得分:0)
您可以使用全局变量解决此问题:see here。但是,在Python中使用classes是一种更好的做法,并保留在特定类中共享变量及其共享变量的函数。
在您的代码中,看起来像这样:
class MediumHandler(object):
def __init__(self):
self.hydro = False
def main(self):
self.medium = input("soil or hydro")
def second(self):
if self.medium == "hydro":
self.hydro = True
handler = MediumHandler()
handler.main()
handler.second()
请注意self.
和medium
在每个用途中使用hydro
。这会将变量附加到对象,而不是将它们留在全局环境中。
答案 1 :(得分:0)
如果您不想使用类,那么只需确保使用全局变量:
hydro = False
medium = ''
def main():
global medium
medium = raw_input("soil or hydro: ")
def second():
global medium
global hydro
if medium == "hydro":
hydro = True
main()
print medium
second()
print hydro
另请注意,我使用raw_input()
代替input()
。 input
不适用于您的情况,因为您希望字符串保持为字符串。