Python閉パッケージ、関数区切り役割ドメイン、nonlocal宣言非局所変数
735 ワード
インスタンスオブジェクトは、閉パッケージの機能も実現できますが、インスタンスオブジェクトが消費するリソース(メモリ)は閉パッケージよりも多いです.
demo.py(閉パッケージ):
demo.py(nonlocal、閉パッケージ内の変数を宣言):
demo.py(閉パッケージ):
# , 。 , , 。
# , 。 , 。
def my_line(k, b):
# k,b my_line create_y , 。 。
def create_y(x):
print(k*x+b)
return create_y
line_1 = my_line(1, 2)
line_1(0)
line_1(1)
line_1(2)
line_2 = my_line(11, 22)
line_2(0)
line_2(1)
line_2(2)
demo.py(nonlocal、閉パッケージ内の変数を宣言):
x = 100
def func_1():
x = 200
def func_2():
# func_1( ) , nonlocal 。
nonlocal x
print("x :%d" % x) # 200
x = 300
return func_2
t1 = func_1()
t1()