ディレクトリ
Functionオブジェクト
Pythonオブジェクト内のすべて
引用文
def f1():
print('from f1')
func = f1
print('f1:', f1)
print('func', func)
# 打印结果:
f1: <function f1 at 0x000002110991D268>
func <function f1 at 0x000002110991D268>
関数のパラメータとして、
def f1():
print('from f1')
def f2(f2_f1):
print('f2_f1:', f2_f1)
f2(f1)
print('f1:', f1)
# 打印结果:
f2_f1: <function f1 at 0x000001E47029D268>
f1: <function f1 at 0x000001E47029D268>
関数の戻り値として、
def f1():
print('from f1')
def f2(f2_f1):
return f2_f1
res = f2(f1)
print('res:', res)
print('f1:', f1)
# 打印结果:
res: <function f1 at 0x0000019F13E7D268>
f1: <function f1 at 0x0000019F13E7D268>
容器として希土類元素
def f1():
print('from f1')
lt = [f1, 12, 3, 4, 5]
lt[0]()
小演習
def pay():
print('支付1e成功')
def withdraw():
print('提现2e成功')
dic = {
'1': pay,
'2': withdraw
}
while True:
msg = '''
'1': 支付,
'2': 提现,
'3': 退出,
'''
print(msg)
choice = input('>>: ').strip()
if choice == '3':
break
elif choice in dic:
dic[choice]()
ネストされた関数
ネストされた関数の内部機能
def f1():
print('from f1')
def f2():
print('from f2')
f2()
f1()
名前空間とスコープ
名前空間
ビルトイン名前空間
収納スペースの組み込みメソッド
データ型の方法ビルトイン; Pythonインタプリタ自身方法(印刷/ LEN /リスト/ STR / dictの)
グローバル・ネームスペース
加えて、組み込みのグローバルとローカルコール
ローカル名前空間
関数定義内のローカルコール
実行の名前空間順序(生成)
- ビルトイン名前空間:がある場合のpythonインタプリタを開始します
- グローバル・ネームスペース:タイムコードの実行可能ファイルは、グローバルを持っています
- ローカル名前空間:時間関数の呼び出しは、ローカルを持っています
検索順序
見つけるために現在の位置から、後方に見ていない、そのために見つけることができません:ローカル>グローバル>内蔵>エラー
スコープ
グローバルスコープ
内蔵の名前空間+グローバル名前空間 - >グローバルスコープ
ローカルスコープ
ローカル名前空間 - >ローカルスコープ
- グローバルスコープとローカルスコープX Xなしの関係
- ローカルスコープ×1×2とローカルスコープは、何もしなくても同じローカルスコープ内のローカルスコープとローカルスコープ2
グローバルキーワード
x = 10
def func():
global x
x = 20
func()
print(x) # 打印20
ローカル以外のキーワード
x = 10
def f1():
x = 2
def f2():
nonlocal x # nonlocal让x成为额顶层函数的局部,不是让它成为全局
x = 30
f2()
print(x)
f1()
# 打印30
注意点
すべての変数のデータ型は、上記のすべてのルールを破ることができます
lt = [10]
def f1():
lt.append(20)
f1()
print(lt)
# 打印结果:
[10,20]