この記事は、Python の関数の包括的な概要 (例付き) を提供します。これには一定の参考価値があります。必要な友人は参照できます。お役に立てば幸いです。
1. 仮パラメータの動的パラメータ: 動的パラメータは、パラメータが不確実な場合に使用されます。
形式:
def fun (*args) fun(args)
1. 位置パラメータを動的に受け取る: 動的パラメータは位置パラメータの後にある必要があります。
例 1. 以下に示すように、パラメータが不確実な場合は、誰もが異なる食欲と異なる種類の食べ物を持っています。動的パラメータ転送。
def fun(*food): #*表示的是不定参数,可以传递任意个信息,参数名称还是food,且接收到的信息为元祖() print("我要吃",food) fun("米饭") #*表示位置参数的动态传参 结果为我要吃 ('米饭',) fun("一锅米饭","一箱辣条","一桶方便面","可口可乐")#我要吃 ('一锅米饭', '一箱辣条', '一桶方便面', '可口可乐') fun ("一碗米饭","辣条","雪碧") #结果为我要吃 ('一碗米饭', '辣条', '雪碧')
Liezi 2.
def fun (*food,a,b): print("我要吃",food,a,b) fun("苹果","梨子","香蕉") #此时程序会报错,全被food接收了,a和b永远接收不到参数. def fun (a,b,*food): print("我要吃",a,b,food) fun("苹果","梨子","香蕉","橘子") #我要吃 苹果 梨子 ('香蕉', '橘子')
2. デフォルト値パラメータがある場合: シーケンス: 位置パラメータ、動的パラメータ*、デフォルト値パラメータ
def chi(a, b, *food, c="娃哈哈"): print(a, b, food, c) chi("香蕉", "菠萝") #香蕉 菠萝 () 娃哈哈 默认值生效 chi("香蕉", "菠萝", "葫芦娃") #香蕉 菠萝 ('葫芦娃',) 娃哈哈 默认值生效 chi("香蕉", "菠萝", "葫芦娃", "口罩") # 香蕉 菠萝 ('葫芦娃', '口罩') 娃哈哈 默认值生效 chi("香蕉", "菠萝", "葫芦娃", "口罩",c="苹果")#香蕉 菠萝 ('葫芦娃', '口罩') 苹果
現時点では、すべてのデフォルト値が有効であることがわかりました。この時点でパラメータを渡すキーワードを指定しない場合は、デフォルト値が適用されます。
3. キーワード パラメータを動的に受け取る: 最終順序 (*): 位置パラメータ> *args > デフォルト値パラメータ> **kwargs
1. 動的位置パラメータは Python で使用できますが、 * この場合、キーワード パラメータではなく、位置パラメータのみを受け取ることができます。動的なキーワード パラメータを受け取るには、Python で ** を使用してください (仮パラメータには位置パラメータとデフォルト値パラメータの 2 つのタイプしかありません)
*args 位置パラメータは、タプル
**kwargs キーワードの動的パラメータを受け取り、辞書
たとえば
def func(**kwargs): # key word arguments print(kwargs) #{'a': 10, 'b': 20, 'jay': '周杰伦', 'jj': '林俊杰'} func(a=10, b=20, jay="周杰伦", jj="林俊杰")
def fun(*args, **kwargs): print(args, kwargs) fun("3","2",a="hello") #('3', '2') {'a': 'hello'}
1
* は分割を意味します, 分解されるのは、リストや文字列などの反復可能なオブジェクトです。仮パラメータは集計を表します。def func(*args): # ここで、実際には、渡されたパラメータを一度集計するのと同じです。タプルに集約する
print(args)
lst = "Wahaha"
func(*lst) # * 実際のパラメータ位置では分割を意味し、分割は反復可能なオブジェクトです
2 . 実際のパラメータ位置**では、辞書は分割されています
def func(**kwargs): # ** 受け取ったキーワードパラメータを辞書にパック(集約)します
print(kwargs) # である必要がありますDictionary
dic = {"張無忌": "明教の指導者"、"謝勲": "金獅子王"、"范耀": "光の右使者"}
func(張無忌=dic ['Zhang Wiji'] , Xie Xun=dic['Xie Xun'], Fan Yao=dic['Fan Yao'])
func(**dic) # ここの ** は辞書を分割することです。辞書のキーはパラメータの名前として使用され、辞書の値はパラメータの値として仮パラメータに渡されます。両方の結果は {'Zhang Woji': 'The Leader of the Ming Cult' と同じです、「Xie Xun」: 「ゴールデンレトリバーのライオン」、「Fan Yao」: 「光の正使」}
2. 名前空間:
def fun(): a=10 fun() print(a) #a 此时不存在
1. 名前空間分類:
1. グローバル名前空間 -- > py ファイル内および関数外で直接宣言した変数は、グローバル名前空間
2 に属します。ローカル名前空間 --> 関数内で宣言された変数は、ローカル名前空間
3 に配置されます。 -in namespace --> Python インタプリタによって提供される名前、list、tuple、str、int を格納します。これらは組み込みの名前空間
2 です。読み込み順序:
1. 組み込みの名前空間 2. グローバル名前空間 3. ローカル名前空間 (関数実行時)
3. 値の順序:
1. ローカル名前空間 2. グローバル名前空間 3. 組み込み名前空間
#3. スコープ
は有効スコープに応じてグローバル スコープとローカル スコープに分割されるスコープです。グローバル スコープ: 組み込み名前空間とグローバル名前空間が含まれます。ファイル全体のどこでも使用できます (次の行ごとに実行します)。
ローカル スコープ: 関数内で使用できます。
スコープ名前空間:
1. グローバル スコープ: グローバル名前空間組み込み名前空間
2. ローカル スコープ: ローカル名前空間
globals()
関数を使用してグローバル スコープを表示できます。スコープ内のコンテンツは、locals() を使用してローカル スコープの変数と関数の情報を表示することもできます。 locals() は現在のスコープのコンテンツを表示します
def fun(): a=10 print(locals()) #{'a': 10} fun() print(globals()) #显示的没有a的信息 print(locals()) #此时和globals一样,显示的没有a的信息,因为他显示的是当前作用域中的内容.
主に 2 つの関数、
global と nonlocal## を使用します#global: グローバル変数をローカルに導入する
nonlocal: ローカル領域では、それに最も近い層の変数が導入されます。最初の層にはグローバル変数を導入できませんfunction.
次の図を理解すると、埋め込みを理解できます。set の意味
関連する推奨事項:
Python ネットワーク プログラミングで一般的に使用される関数の概要
以上がPython の関数の包括的な概要 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。