返回变量以在python中的其他函数中使用

时间:2013-06-26 08:11:20

标签: python function return

我遇到的问题是返回月份和日期变量以用于其他功能。

def date():
    date = raw_input("Date (ex. Jun 19): ")
    date = date.split(' ')
    month = date[0]
    month = month[:3].title()
    day = date[1]
    return (month, day)

def clone(month,day):
    print month day

以下是脚本的输出:

Date (ex. Jun 19): june 19
Traceback (most recent call last):
  File "./manualVirt.py", line 26, in <module>
    main()
  File "./manualVirt.py", line 12, in main
    clone(agent,month,day)
NameError: global name 'month' is not defined

4 个答案:

答案 0 :(得分:1)

由于您从tuple返回date(),我将假设这将是您想要做的事情

month_day = date()
clone(month_day[0], month_day[1])

以及clone()

中的以下行
print month day

应该是

print month, day

答案 1 :(得分:1)

您是否可能希望将一个函数的结果传递给另一个函数?

month, day = date()
clone(month, day)

或者您可以在将函数结果传递给第二个函数时将其解压缩

result = date()
clone(*result)

甚至

clone(*date())

答案 2 :(得分:0)

您可能想知道如何在本地空间中声明变量时在全局空间中使用该变量。使用global

def myfunc():
    global a
    a = 5

print a
# NameError: name 'a' is not defined
myfunc()
print a
# 5

答案 3 :(得分:0)

我认为问题来自:print month day

如果要打印多个内容,则需要用逗号分隔参数:

print month, day