ホームページ  >  記事  >  バックエンド開発  >  Python の関数の包括的な概要 (例付き)

Python の関数の包括的な概要 (例付き)

不言
不言オリジナル
2018-09-15 17:51:261763ブラウズ

この記事は、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="林俊杰")
# を受け取ります。 ##2. 無敵モード、何でも接続可能


def fun(*args, **kwargs):
    print(args, kwargs)
fun("3","2",a="hello")  #('3', '2') {'a': 'hello'}

4.* と ** 実パラメータでの使用の意味 実パラメータ位置の

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 此时不存在

We名前と値の関係を格納する空間に名前を付けます: 名前空間. 変数は格納されるときにここに格納されます. スライス空間内.

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的信息,因为他显示的是当前作用域中的内容.

4. 関数のネスト

主に 2 つの関数、
global と nonlocal## を使用します#global: グローバル変数をローカルに導入する
nonlocal: ローカル領域では、それに最も近い層の変数が導入されます。最初の層にはグローバル変数を導入できませんfunction.

次の図を理解すると、埋め込みを理解できます。set の意味

関連する推奨事項:

Python ネットワーク プログラミングで一般的に使用される関数の概要


PHP の文字列関数の完全な概要

##

以上がPython の関数の包括的な概要 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。