day11の名前空間スコープ
A. 三項演算子
デフFUNC(a、b)は:
他のB b>を返す場合
印刷(FUNC(44,66))
II:関数のコメント
デフFUNC(a、b)は:
「」」
この関数は、計算、Bに使用され、
:PARAM:最初のデータ
:のParam B:第二のデータ
:リターン:2つの数の復帰
「」」
+ bを返します
(FUNC .__ doc__内の例題)#document文書を印刷します
III。ネーム(名前空間)
ビルトイン名前空間:ストアは、名前のpythonを提供してくれます
グローバル名前空間:PYファイル、関数、変数の外
ローカル名前空間:PYファイル、関数内の変数
= 10
DEF FN():#は、fnは、グローバルネームスペースあり、それがグローバルでトップグリッド書き込みと考えられています
関数が呼び出されたときのみ、B = 20#の変数b、それが使用されます
プリント(A)
デフ)(GN:
プリント(A)
FN()
GN()
ロードオーダー#名前空間:内蔵 - >グローバル - >ローカル
四つスコープ:範囲は範囲有効で割った値であります
グローバルスコープ:グローバルおよび構築されました
ローカルスコープ:ローカル
グローバル() ローカル()
= 10
DEFキー():
B = 20
デフ)(中:
C = 30
印刷(グローバル())#グローバルスコープの内容を表示することができます
スコーププリント(地元の人々())#ビューコンテンツの現在のスコープ、および地元の人々()ここで、関係
= 10
DEFキー():
B = 20
デフ)(中:
印刷する印刷が行われていない、#en呼び出されない(グローバル())、FN()は結果
印刷(地元の人々())
FN()
V.ネストされた関数
def outer():
print('i am in outer')
def inner():
print('i am in inner') #可以无限的往下套
inner()
outer()
六.global和nonlocal关键字
global 改全局
a = 10 #全局变量本身不安全, 不能随意修改(闭包可解决此事)
def func():
global a #不写global, 可以使用a, 但是不能改a 的值, 否则报错
a = 20 #在调用func()之后, 1.把全局的a 改成 20 2.创建全局变量 a
func()
print(a)
nonlocal 改上一层,还要有这个变量, 若没有,再往上找, 直到找最后一层, 找不到报错(但是不找全局)
a = 30
def outer():
a = 10 #找的这个,没有则报错
def inner():
nonlocal a
a = 20
inner()
print(a)
outer()
print(a) #全局的不找