0

他の関数で使用する月と日の変数を返す際に問題が発生しています。

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

4 に答える 4

1

ある関数の結果を別の関数に渡したいということはありますか?

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

または、関数の結果を2番目の結果に渡すときにアンパックできます

result = date()
clone(*result)

あるいは

clone(*date())
于 2013-06-26T08:19:52.310 に答える
0

変数がローカル空間で宣言されている場合、グローバル空間で変数を使用する方法を疑問に思われることでしょう。使用global:

def myfunc():
    global a
    a = 5

print a
# NameError: name 'a' is not defined
myfunc()
print a
# 5
于 2013-06-26T08:13:41.243 に答える
0

問題はここにあると思います: print month day.

複数のものを出力する場合は、引数をコンマで区切る必要があります。

print month, day
于 2013-06-26T08:15:08.737 に答える