如何从一个函数中获取用户输入的数据并在另一个python中使用

时间:2015-01-24 21:57:44

标签: python function variables global

这可能是一个简单的答案,可能与全局变量有关吗?如何从一个功能获得用户输入的数据,并使其能够在同一程序中与其他功能一起调用和输出。例如:

hydro = False
    def main():
        medium = input("soil or hydro")

    def second():
        if medium == "hydro":
            hydro = True


main()
second()

2 个答案:

答案 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不适用于您的情况,因为您希望字符串保持为字符串。