[解決済み] Pythonでアスタリスク*は何を意味するのですか?[重複しています]。
2022-03-16 12:02:39
質問
Pythonでは*はC言語のように特別な意味を持つのでしょうか?Python Cookbookでこんな関数を見かけました。
def get(self, *a, **kw)
Googleは*をワイルドカード文字と解釈しているため、満足のいく答えが見つかりません)説明していただくか、どこで答えを見つけられるかご指摘ください。
どのように解決するのですか?
参照 機能定義 言語リファレンスにあります。
もし、フォーム
*identifier
は が存在する場合、それはタプルとして初期化されます。 余分な位置指定があれば パラメータがあり、デフォルトは空の タプルです。もし、フォーム**identifier
は が存在する場合、それは新しい 辞書は、余分な キーワード引数、デフォルトは新しい 空の辞書
また 機能呼び出し .
位置引数とキーワード引数の意味を理解した上で、いくつかの例を挙げてみましょう。
例1:
# Excess keyword argument (python 2) example:
def foo(a, b, c, **args):
print "a = %s" % (a,)
print "b = %s" % (b,)
print "c = %s" % (c,)
print args
foo(a="testa", d="excess", c="testc", b="testb", k="another_excess")
上の例でわかるように、パラメータは
a, b, c
のシグネチャで
foo
関数を使用します。このため
d
と
k
が存在しない場合、それらは args 辞書に入れられる。プログラムの出力は
a = testa
b = testb
c = testc
{'k': 'another_excess', 'd': 'excess'}
例2:
# Excess positional argument (python 2) example:
def foo(a, b, c, *args):
print "a = %s" % (a,)
print "b = %s" % (b,)
print "c = %s" % (c,)
print args
foo("testa", "testb", "testc", "excess", "another_excess")
ここでは、位置引数をテストしているので、余分なものは最後になければならないし
*args
はそれらをタプルにパックするので、このプログラムの出力は次のようになります。
a = testa
b = testb
c = testc
('excess', 'another_excess')
また、辞書やタプルを関数の引数に展開することもできます。
def foo(a,b,c,**args):
print "a=%s" % (a,)
print "b=%s" % (b,)
print "c=%s" % (c,)
print "args=%s" % (args,)
argdict = dict(a="testa", b="testb", c="testc", excessarg="string")
foo(**argdict)
プリントする。
a=testa
b=testb
c=testc
args={'excessarg': 'string'}
そして
def foo(a,b,c,*args):
print "a=%s" % (a,)
print "b=%s" % (b,)
print "c=%s" % (c,)
print "args=%s" % (args,)
argtuple = ("testa","testb","testc","excess")
foo(*argtuple)
プリントする。
a=testa
b=testb
c=testc
args=('excess',)
関連
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] Pythonの関数定義における->の意味とは?
-
[解決済み] PythonでHTTP GETを行う最短の方法は何ですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
PythonによるLeNetネットワークモデルの学習と予測
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み] データ型が理解できない
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] 関数の引数でアスタリスクがむき出し?
-
[解決済み] 複数の集合の交点を求めるのに最適な方法とは?
-
[解決済み] Pythonで行列の転置 [重複] を行う