0
#!/usr/bin/python3
def func():
    a = 1
    print(a+12)

print(a)

結果は次のとおりです。

NameError: 名前 'a' が定義されていません

関数の外で使用することは可能ですか?

4

3 に答える 3

0

returnステートメントを使用して、より高いスコープに値を渡すことができます。

def func():
    a = 1
    print(a+12)
    return a

a = func()
print(a)

結果:

13
1

値は、変数が関数内で持っていた名前にバインドされていないことに注意してください。必要なものに割り当てることも、別の式で直接使用することもできます。

def func():
    a = 1
    print(a+12)
    return a

func()
print(a) #this will not work. `a` is not bound to anything in this scope.

x = func()
print(x) #this will work

print(func()) #this also works
于 2013-08-20T16:36:07.303 に答える
0

変数「a」のスコープが関数 func() 内に制限されているため、できないと思います。外部で定義した場合、関数の外部で「a」変数を呼び出すことができます。あなたが(私のような)pythonの初心者なら、これを使ってください。それは私を助けました

PS: 私も Python の初心者なので、間違っているかもしれません。

于 2013-08-20T16:24:22.690 に答える