def foo():
print ('関数')
def foo1(a,b):
print(a+b)
foo()
foo1(1,2)
foo1これはパラメータ付きの関数であり、foo1(1,2) を使用してパラメータ付きでこの関数を呼び出すことができます。
プログラム中に変数がある場合、その変数のスコープが関係します。 Python では、変数のスコープは、グローバル、ローカル、非ローカルの 3 つのレベルに分割されます。
global: 名前が示すように、グローバル変数を表します。つまり、この変数は Python の最高レベルにあり、関数やクラスではなく、この変数の定義レベルが最高になります。
local: 関数で定義されたローカル変数。
非ローカル: これは相対的な概念です。 Python では、関数内に内部関数を入れ子にすることができるため、関数内の変数は、関数内の埋め込み関数に対して非ローカルになります。
以下に、関連するプログラムを示します。まず、グローバル変数とローカル変数を確認します。
コードをコピーします。 コードは次のとおりです。
x = 1
y = 2
def foo(x):
print(x)
print(y)
print('**** ****** **')
x = 3
グローバル y
y = 3
print(x)
print(y)
print('*** ******* **')
foo(x)
print(x)
print(y)
#*********** ******* ******
#実行結果
1
2
****************
3
3
***** ******
1
3
上記のプログラムでは、2 つのグローバル変数 x と y が定義されており、関数 foo 内では、ローカル変数 x も定義されています。実行結果によると、foo 内の変数 x は実際のローカル変数であることがわかります。これに加えられた変更はグローバル変数 x に影響を与えないためです。さらに、foo 内でグローバル変数を使用する必要がある場合は、global キーワードを使用する必要があります。グローバル y の目的は、変数 y を外部で宣言されたグローバル変数 y として宣言することです。したがって、foo 内の y を変更した後でも、foo の外側に影響を及ぼします。 foo はグローバル変数を変更するためです。
非ローカルをもう一度見てみましょう:
コードをコピー コードは次のとおりです:
def out():
z = 3
def inner():
非ローカル z
z = 4
print('inner function and z = {0}'.format(z))
inner( )
print('out function and z = {0}'.format(z))
out()
#**********
#実行結果
inner 関数と z = 4
out 関数と z = 4
現在の 1/2 ページ 12次のページ