検索
ホームページバックエンド開発Python チュートリアルLao Qi から Python を学び、パラメータの受け渡しを要約する

以上で、機能の基本的な内容は完成しました。ただし、関数については検討する価値のある詳細がたくさんあります。ここで説明します。

パラメータの転送

Python の関数のパラメーターは、代入を通じて参照オブジェクトによって渡されます。次の概要は、パラメーターの受け渡しプロセスを理解するために、一般的な関数パラメーターの定義方法をまとめたものです。

def foo(p1,p2,p3,...)

この方法は最も一般的で、限られた数のパラメータをリストし、それらをカンマで区切ります。関数を呼び出すときは、この順序でパラメーターに値を割り当てます。重要なのはパラメーターの名前ではなく、位置であることに注意してください。さらに、量は一貫しており、1 対 1 に対応している必要があります。最初のオブジェクト (数値、文字列など) は最初のパラメータに対応し、2 番目のオブジェクトは 2 番目のパラメータに対応します。この対応は左または右であってはなりません。

コードをコピー コードは次のとおりです:

>>> def foo(p1,p2,p3):
... print "p1==>",p1
... print "p2==>",p2
... print "p3==>",p3
...
>>> foo("python",1,["qiwsir","github","io"]) #値を 1 つずつ割り当てます
p1==> パイソン
p2==>1
p3==> ['qiwsir', 'github', 'io']

>>>foo("Python")
トレースバック (最後の呼び出し):
ファイル「」、1 行目、
TypeError: foo() はちょうど 3 つの引数を取ります (1 つは指定されています) #エラー メッセージに注意してください

>>>foo("Python",1,2,3)
トレースバック (最後の呼び出し):
ファイル「」、1 行目、
TypeError: foo() はちょうど 3 つの引数を取ります (4 つは指定されています) #3 つの引数が必要ですが、実際には 4 つ配置され、エラーが報告されます


def foo(p1=値1,p2=値2,...)

この方法は、前の方法よりも特定のパラメータの割り当てが明確であり、混乱することはないようです。それはまさに穴に直面したニンジンのようなものです。

上記と同じ関数なので、次の方法で値を代入します。順序は気にする必要はありません。

コードをコピー コードは次のとおりです:

>>> foo(p3=3,p1=10,p2=222)
p1==>10
p2==>222
p3==>3

次の方法でパラメータを定義し、一部のパラメータにデフォルト値を与えることもできます。

コードをコピー コードは次のとおりです:

>>> def foo(p1,p2=22,p3=33): #2 つのパラメータ p2 と p3 のデフォルト値を設定します
... print "p1==>",p1
... print "p2==>",p2
... print "p3==>",p3
...
>>> foo(11) #p1=11、他のパラメータにはデフォルト値が割り当てられます
p1==>11
p2==>22
p3==>33
>>> foo(11,222) #p2=222 の命令に従い、p3 は元のデフォルト値を維持します
p1==>11
p2==>222
p3==>33
>>> foo(11,222,333) #順番に値を代入します
p1==>11
p2==>222
p3==>333

>>>foo(11,p2=122)
p1==>11
p2==>122
p3==>33

>>> foo(p2=122) #p1 にはデフォルト値がないため、値を割り当てる必要があります。そうでない場合はエラーが報告されます
トレースバック (最後の呼び出し):
ファイル「」、1 行目、
TypeError: foo() は少なくとも 1 つの引数を取ります (1 つは指定されます)

def foo(*args)

この方法は、パラメータの数が不明な場合に適しています。パラメータの引数の前に * を追加します。

コードをコピー コードは次のとおりです:

>>> def foo(*args): #不確実な数のデータ オブジェクトを受信します
... print args
...
>>> foo("qiwsir.github.io") #
であってもタプル形式で受信します ('qiwsir.github.io',)
>>> foo("qiwsir.github.io","python")
('qiwsir.github.io', 'python')

前の講義にはすでに例があり、前の講義と混合することができます。ここではこれ以上の詳細は説明しません。

def foo(**args)

このメソッドと上記のメソッドの違いは、arg=val のようなものを受け取る必要があることです。

コードをコピー コードは次のとおりです:

>>> def foo(**args): #このように受信し、辞書形式でデータオブジェクトを受信します
... print args
...

>>> foo(1,2,3) #これによりエラーが報告されます
トレースバック (最後の呼び出し):
ファイル「」、1 行目、
TypeError: foo() はちょうど 0 個の引数を取ります (3 個が与えられます)

>>> foo(a=1,b=2,c=3) #キーと値のペアがあるので以上です
{'a': 1、'c': 3、'b': 2}

上記 4 つのパラメータ転送メソッドの実行順序を総合的に見てみましょう

コードをコピー コードは次のとおりです:

>>> def foo(x,y=2,*targs,**dargs):
... print "x==>",x
... print "y==>",y
... print "targs_tuple==>",targs
... print "dargs_dict==>",dargs
...

>>>foo("1x")
x==>1x
y==>2
targs_tuple==> ()
dargs_dict==> {}

>>>foo("1x","2y")
x==>1x
y==> 2y
targs_tuple==> ()
dargs_dict==> {}

>>> foo("1x","2y","3t1","3t2")
x==>1x
y==> 2y
targs_tuple==> ('3t1', '3t2')
dargs_dict==> {}

>>> foo("1x","2y","3t1","3t2",d1="4d1",d2="4d2")
x==>1x
y==> 2y
targs_tuple==> ('3t1', '3t2')
dargs_dict==> {'d2': '4d2', 'd1': '4d1'}

上記の例を通して、何か興味深いことがわかりましたか?

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?Apr 24, 2025 pm 03:53 PM

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Apr 24, 2025 pm 03:49 PM

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

CTypesモジュールは、Pythonの配列にどのように関連していますか?CTypesモジュールは、Pythonの配列にどのように関連していますか?Apr 24, 2025 pm 03:45 PM

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo

Pythonのコンテキストで「配列」と「リスト」を定義します。Pythonのコンテキストで「配列」と「リスト」を定義します。Apr 24, 2025 pm 03:41 PM

Inpython、「リスト」は、「リスト」、自由主義的なもの、samememory効率が高く、均質な偶然の瞬間の想起された「アレイ」の「アレイ」の「アレイ」の均質な偶発的な想起されたものです

Pythonリストは可変ですか、それとも不変ですか? Pythonアレイはどうですか?Pythonリストは可変ですか、それとも不変ですか? Pythonアレイはどうですか?Apr 24, 2025 pm 03:37 PM

pythonlistsandarraysaraybothmutable.1)listsareflexibleandsupportheTeterdatabutarlessmemory-efficient.2)Arraysaremorememory-efficientiant forhomogeneousdative、ressivelessatile、ressing comerttytytypecodeusageodoavoiderorors。

Python vs. C:重要な違​​いを理解しますPython vs. C:重要な違​​いを理解しますApr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

Python vs. C:プロジェクトのためにどの言語を選択しますか?Python vs. C:プロジェクトのためにどの言語を選択しますか?Apr 21, 2025 am 12:17 AM

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

Pythonの目標に到達する:毎日2時間のパワーPythonの目標に到達する:毎日2時間のパワーApr 20, 2025 am 12:21 AM

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。