Pythonの関数で可変長引数(*args)を使う方法をわかりやすく解説
Pythonでは、アスタリスクを1つ付けた *args を仮引数として定義することで、キーワードなしの可変長引数を関数に渡すことができます。ここで重要なのはアスタリスク(*)の記号部分であり、args という名前と組み合わせることで「キーワードなしの引数が任意の個数だけ渡される」という意味になります。
なお、args という名前はあくまで慣習的なものであり、実際には任意の名前を付けることができます。重要なのは先頭に付けるアスタリスクの方です。
サンプルコード
以下は、渡されたすべての引数を掛け合わせて結果を出力する関数の例です。*args を使うことで、呼び出し時の引数の個数に制限がなくなります。
def multiply(*args):
y = 1
for num in args:
y *= num
print(y)
multiply(3, 7)
multiply(9, 8)
multiply(3, 4, 7)
multiply(5, 6, 10, 8)実行結果
21 72 84 2400
ポイントのまとめ
*argsは、関数に渡された可変個の位置引数をタプルとして受け取ります。- 引数の個数が事前に決まっていない場合に便利です。
- キーワード付きの可変長引数を受けたい場合は、アスタリスク2つの
**kwargsを使用します(辞書型として受け取ります)。
-
JavaScript関数で無制限の引数を扱う方法|argumentsオブジェクトの使い方
JavaScriptでは、関数に渡す引数の個数を事前に固定しなくても、arguments オブジェクトを使えば任意の数の引数を受け取ることができます。argumentsオブジェクトとは?arguments は、関数が呼び出されたときに自動的に利用できる特別なオブジェクトです。宣言された仮引数の数に関わらず、実際に渡されたすべての引数を配列のような形式(Array-like object)で保持します。arguments.length:実際に渡された引数の個数を取得できます関数名.length:関数定義時に宣言された仮引数の個数を取得できますこの2つを比較することで、「想定していた引数の数」と「
-
PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本
Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした