小猿のサークルのpython学習 - 関数の戻り値と範囲

外部関数のコードは、関数の実行結果を得るために、あなたは、関数でreturn文によって返された結果を置くことができます

デフstu_register(名前、年齢、コース= 'PY'、国= 'CN'):

    印刷(「---- ------登録学生情報」)

    印刷( "名:"、名前)

    印刷( "年齢:"、年齢)

    印刷( "国籍:"、国)

    印刷( "コース:"、もちろん)

    年齢> 22の場合:

        Falseを返します

    他:

        真を返します

registriation_status = stu_register( "キング山の大砲"、22、もちろん= "PYスタック全体の開発"、国= 'JP')

registriation_status場合:

    印刷(「登録成功」)

他:

    (「学生であるには余りにも古い。」)を印刷

注意を払います

return文限り、実装プロセスで発生した関数が実行を停止し、その結果を返すので、関数のreturn文の終わりを表すものとして理解することができます

関数の戻り値を指定しない場合、この関数はNoneを返します

グローバルとローカル変数

名前=「アレックス・リー」

デフchange_name():

    名前=「ゴールデンホーンの王、シニアテスラ巨根ワイヤー」

    (「変更後」、名)印刷

change_name()

印刷(「外側の名が変更内容を確認するには?」、名)

輸出

ゴールデンホーンの変更王、シニアテスラ巨根ワイヤー後

名前でそれを見るために外に変わったのか?アレックス・リー

なぜ、関数名内の値を変更し、彼らはそれを変更していない時にプリントアウト?これら二つの名前ではないので、同じもの

ローカル変数で定義された変数は、変数のグローバル変数と呼ばれる手順の最初に定義され、関数を呼び出しました。

グローバル変数のスコープ(すなわち有効範囲)プログラム全体で、ローカル変数は、定義の可変範囲の関数です。

ある変数の順序を探すローカル変数>グローバル変数

グローバル変数とローカル変数の関数定義に同じ名前のローカル変数の場合は、ローカル変数が役割を果たし、グローバル変数は、他の場所に機能します。

関数内で直接グローバル変数を変更されていません

どれだけやって関数内でグローバル変数を変更したいですか?

名前=「アレックス・リー」

デフchange_name():

    グローバル名の#は、グローバル変数を宣言します

    名前=「また、ゴールデンホーンとして知られるアレックス・キング、愛の生活、自由の愛は、女の子が大好きです。」

    (「変更後」、名)印刷

change_name()

印刷(「外側の名が変更内容を確認するには?」、名)

グローバル名の効果がトップを意味し、関数名にグローバル変数を宣言することです名前=「アレックスリー」を、書かれていない場合でも、最後尾の印刷プログラムは、名前を印刷することができます

転送リスト、辞書の現象、生成されたコレクション

D = { "名前": "アレックス"、 "年齢" 26、 "趣味": "大保健"}

L = [ "Rebeeca"、 "カトリーナ"、 "レイチェル"]

デフchange_data(情報、女の子):

    インフォ[「ホビー」] =「学習」

    girls.append( "XiaoYun")

change_data(D、L)

プリント(D、L)

[ 'Rebeeca'、 'カトリーナ'、 'レイチェル'、 'XiaoYun'] { 'アレックス'、 '年齢':26 'ホビー' '学習' '名前'}の結果

それは、それがどのように変化したか機能その中のグローバル変数を変更することはできませんと言うことではありませんか?

図によれば、我々は、この手順では、Dの辞書のメモリアドレスは魚でいっぱい比べタンクV、Kの内側に、dictのタンクに比べ、change_data関数に渡さであることがわかります。ただ水槽機能を投げた今、あなたはタンク自体を変更することはできませんが、魚があるかもしれません。関数のパラメータにDへの言及は、この関係に一つだけのパスに相当します。アイデアは一度関数に渡され、この比較的大きな辞書は、新しい値にコピーする場合、効率が低すぎるため、メモリの無駄を削減することです。

ます。https://www.jianshu.com/p/1eb0b8386527で再現

おすすめ

転載: blog.csdn.net/weixin_33733810/article/details/91100195