-1

変数を更新するスクリプトがありますが、別の変数を返します。

例えば:

x = ""
def callMe():

   global x
   x = "test"
   y = "123"

   return y

def main():
   y1 = callMe()
   print y1
   print x

if __name__ == "__main__":
   main()

callMe() 関数で更新されたにもかかわらず、ここで x emtpy の値を取得します。

何か案は?

アップデート:

以前はスクリプトが間違っていました。これが現在のスクリプトの動作であり、メインの z の値が表示されません...

x = ""
z = ""
def callMe():

    global x
    x = "test"
    y = "123"
    if y:
        z = y
    else:
        z = "dont know"
    return y

def main():
    y1 = callMe()
    print y1
    print x
    print z

if __name__ == "__main__":
    main()
4

1 に答える 1

1

このモジュールを直接実行する代わりにインポートする場合、main() は実行されません。そうでなければ、これが機能しない理由はありません。

このコードをモジュールとしてインポートする場合、__name__ではなくモジュールの名前を返します'__main__'。その結果、main() は呼び出されず、x の値は残ります。""

于 2012-10-04T15:12:25.010 に答える