pythonでのreturnの戻りと実行
7547 ワード
1印刷関数名と印刷関数の実行過程の違い
例1.1
印刷結果:
111
None
まとめ:
関数名print(a)を印刷した結果、その関数のメモリアドレスが印刷されました.
印刷関数の実行:print(a()は、その関数の実行プログラムのprintの部分を印刷し、最後にreturnの内容も印刷し、returnの関数を定義せずにNoneを印刷します.
例1.2
印刷結果:
111
None
コード・プロシージャの解析は次のとおりです.
print(b)は変数b(関数)のメモリアドレスを印刷し、b関数に何の影響も与えず、b関数は実行されません.
print( b() ) :
《1》まずb関数を実行する.b関数は本体内容を定義していないため、空に戻ります
『2』b関数の戻り値:return a()を印刷する.このときのb関数が実行されているため、return内の関数も実行されます.
《2.1》,a()を実行し,111を印刷する.
《2.2》,a()関数にはreturnの値が定義されていないため,noneをa()関数の戻り値として取り,このnone returnもb関数に与える.このときのb関数の戻り値もnoneなのでprint(b()=None
2、関数内容本体で実行する:
例2.
印刷結果:
aaaaaaaa
3、関数のreturnで実行します.
例3.
印刷結果:
aaaaaaaa
まとめ:1つの関数が実行されると、その関数のreturn内容が実行可能なプログラムである場合、そのプログラムも正常に実行されます.ただし、この場合の戻り値の概念は、プログラムのprint部分を印刷し、関数の戻り値を返し、戻り値を定義しなければNoneを返すことです.
4,プリント関数名(本質はプリント変数名に対応するメモリアドレス:つまりその関数に対応するコンテンツ本体のメモリアドレス)
例4.
return a()の場合:今回のreturnはa()ですが、b()関数が呼び出されていないため、2つの関数のメモリアドレスが印刷されます.
5,関数のreturnの内容が定数と変数(実行可能な関数)の場合の関数実行問題
returnで定数の場合:b()関数の中は空です.returnのaは定数であり、メモリアドレスである.
例5.1.
returnは変数(実行可能な関数)で、b関数が実行されると、b関数の本体とreturnの中のプログラムが実行され、効果は以下の通りです.
例5.2
印刷結果:
111
6,伝達パラメータの高次関数の戻り値を印刷するには,a(f)がa関数を実行していることを理解しなければならない.
例6.1
解析:a(f)関数を印刷するプロセス全体は、パラメータを持たないprint(a()を印刷するプロセスに相当する!!!すなわち、a(b)関数が実行され、戻り値が印刷される.
print(a(f):a関数で印刷された部分を印刷し、a関数の戻り値、すなわちprint(222222)およびprint(f)を印刷する
同じように、高次関数にパラメータを割り当てると、次のような関数も実行されます.
例6.2
上記の例のb=a(f)は2つのステップに分けて理解される.
1,a(f)は、パラメータを持たないa()に相当し、a関数を実行することを意味し、a(f)はパラメータfをインポートした場合に実行する
2,b=a(f)は,a(f)関数の実行後の戻り値をbに与え,後続の変数bが呼び出す.
転載先:https://www.cnblogs.com/xushuangwaiwai/p/10731197.html
例1.1
def a():
print(111)
print(a) # a , a ,a
print(a()) # a , a
印刷結果:
111
None
まとめ:
関数名print(a)を印刷した結果、その関数のメモリアドレスが印刷されました.
印刷関数の実行:print(a()は、その関数の実行プログラムのprintの部分を印刷し、最後にreturnの内容も印刷し、returnの関数を定義せずにNoneを印刷します.
例1.2
def a():
print(111)
return None
def b():
return a() # a , a 。 :111, None
print(b) # b
print(b()) # b , b
印刷結果:
111
None
コード・プロシージャの解析は次のとおりです.
print(b)は変数b(関数)のメモリアドレスを印刷し、b関数に何の影響も与えず、b関数は実行されません.
print( b() ) :
《1》まずb関数を実行する.b関数は本体内容を定義していないため、空に戻ります
『2』b関数の戻り値:return a()を印刷する.このときのb関数が実行されているため、return内の関数も実行されます.
《2.1》,a()を実行し,111を印刷する.
《2.2》,a()関数にはreturnの値が定義されていないため,noneをa()関数の戻り値として取り,このnone returnもb関数に与える.このときのb関数の戻り値もnoneなのでprint(b()=None
2、関数内容本体で実行する:
例2.
def a():
print('aaaaaaaa') # :aaaaaaaa
def b():
a() # a
b() # b
印刷結果:
aaaaaaaa
3、関数のreturnで実行します.
例3.
def a():
print('aaaaaaaa')
def b():
return a()
b()
印刷結果:
aaaaaaaa
まとめ:1つの関数が実行されると、その関数のreturn内容が実行可能なプログラムである場合、そのプログラムも正常に実行されます.ただし、この場合の戻り値の概念は、プログラムのprint部分を印刷し、関数の戻り値を返し、戻り値を定義しなければNoneを返すことです.
4,プリント関数名(本質はプリント変数名に対応するメモリアドレス:つまりその関数に対応するコンテンツ本体のメモリアドレス)
例4.
def a():
print(111) # :111
print(a) # a
def b():
return a # a
print(b) # b
return a()の場合:今回のreturnはa()ですが、b()関数が呼び出されていないため、2つの関数のメモリアドレスが印刷されます.
5,関数のreturnの内容が定数と変数(実行可能な関数)の場合の関数実行問題
returnで定数の場合:b()関数の中は空です.returnのaは定数であり、メモリアドレスである.
例5.1.
def a():
print(111) # :111
def b():
return a # a
b()
returnは変数(実行可能な関数)で、b関数が実行されると、b関数の本体とreturnの中のプログラムが実行され、効果は以下の通りです.
例5.2
def a():
print(111)
def b():
return a() # a , a
b()
印刷結果:
111
6,伝達パラメータの高次関数の戻り値を印刷するには,a(f)がa関数を実行していることを理解しなければならない.
例6.1
def f():
print(11111111) # 11111111
return None
def a(b):
print(222222) # 222222
return b # b
print(a(f)) # a , a 。 a :222222, a f
解析:a(f)関数を印刷するプロセス全体は、パラメータを持たないprint(a()を印刷するプロセスに相当する!!!すなわち、a(b)関数が実行され、戻り値が印刷される.
print(a(f):a関数で印刷された部分を印刷し、a関数の戻り値、すなわちprint(222222)およびprint(f)を印刷する
同じように、高次関数にパラメータを割り当てると、次のような関数も実行されます.
例6.2
def f():
print(11111111) # :11111111
return None
def a(n):
print(222222) # :222222
return f # f , f 。 :111111 return None
b = a(f)
上記の例のb=a(f)は2つのステップに分けて理解される.
1,a(f)は、パラメータを持たないa()に相当し、a関数を実行することを意味し、a(f)はパラメータfをインポートした場合に実行する
2,b=a(f)は,a(f)関数の実行後の戻り値をbに与え,後続の変数bが呼び出す.
転載先:https://www.cnblogs.com/xushuangwaiwai/p/10731197.html