Python

 Computer >> コンピューター >  >> プログラミング >> Python
  1. Pythonで関数デコレータをチェーン(連結)して使う方法

    Pythonにおけるデコレータとは、いわば「ラッパー」のようなものです。関数そのもののコードを変更することなく、装飾対象の関数の実行前後に任意の処理を追加できます。さらに、デコレータは1つの関数に対して複数を重ねて適用する(チェーンする)ことも可能です。この記事では、その基本的な使い方を具体例とともに解説します。デコレータをチェーンするサンプルコード以下の例では、makebold と makeitalic という2つのデコレータを定義し、hello 関数に両方を適用しています。def makebold(fn): def wrapped(): return <b&g

  2. Pythonで関数の引数(パラメータ)名のリストを取得する方法

    Pythonでは、関数やメソッドが受け取る引数の「数」と「名前」をプログラムから取得できます。たとえば、(arg1, arg2) のような形式で引数名の一覧を取り出したい場合には、標準ライブラリの inspect モジュール を使用します。以下のコードでは、inspectモジュールを使って、aMethod と foo という2つの関数内のパラメータ情報を取得しています。サンプルコードimport inspect def aMethod(arg1, arg2): pass print(inspect.getargspec(aMethod)) def foo(a, b, c=4, *

  3. Pythonで再帰関数を作成する方法|基本の考え方と実装例を解説

    再帰(Recursion)とは? 再帰とは、関数がその処理の中で自分自身を1回以上呼び出すプログラミング手法のことです。通常、その呼び出しの戻り値を利用しながら最終的な結果を返します。このように自分自身を呼び出す形で定義された関数を「再帰関数」と呼びます。 再帰関数に欠かせない「終了条件」 再帰関数をプログラムで使用するには、必ず処理が終了することが前提となります。再帰呼び出しが行われるたびに扱う問題の規模が少しずつ小さくなり、それ以上再帰せずに答えを直接求められる状態――いわゆる「ベースケース」へと近づいていくことで、関数は適切に停止します。 逆に、ベースケースに到達できないまま呼び出し

  4. Pythonで関数(メソッド)をオーバーロードする方法

    Pythonでは、関数やメソッドを複数の呼び出し方ができるように定義することができます。定義の仕方によって、引数なし・1つ・2つ、あるいはそれ以上の引数で呼び出せるようになります。これを「メソッドのオーバーロード」と呼びます。ただし注意が必要なのは、PythonはJavaやC++のような厳密な意味でのオーバーロード(同名メソッドを異なるシグネチャで複数定義する仕組み)をサポートしていないという点です。その代わりに、デフォルト引数を使うことで、同じような挙動を実現できます。以下のコードでは、sayHello()という1つのメソッドを持つクラスを定義しています。このメソッドの第2パラメータにデフォ

  5. 【Python入門】関数内でグローバル変数を使う方法をわかりやすく解説

    「グローバル」と「ローカル」という用語は、スクリプトやプログラム内における変数の有効範囲(スコープ)を表します。グローバル変数とはプログラムのどこからでもアクセスできる変数のことで、ローカル変数はその変数が定義された範囲(関数の中など)からしかアクセスできません。ローカル変数には、グローバルな位置からアクセスすることはできない点に注意しましょう。 グローバル変数とは、関数の外側で定義・宣言された変数のことで、プログラム内のどこからでも自由に利用できます。 ただし、関数のスコープ内に同じ名前の変数が定義されている場合は、グローバル変数の値ではなく、関数内で定義された値が優先して出力されます。 例

  6. Pythonオブジェクトのソースコードを取得する方法(inspect.getsourceの使い方)

    Pythonでは、標準ライブラリのinspectモジュールに含まれるgetsource()メソッドを使うことで、関数やクラスなどのオブジェクトのソースコードを簡単に取得できます。inspect.getsource(object)getsource()メソッドの概要inspect.getsource()は、指定したオブジェクトのソースコードのテキストを返します。引数には以下のようなオブジェクトを指定できます。モジュールクラスメソッド関数トレースバック(traceback)フレーム(frame)コードオブジェクトソースコードは単一の文字列として返されます。なお、ソースコードを取得できない場合にはO

  7. 実行時にPython関数を動的に定義・実行する方法

    Pythonでは、標準ライブラリの types モジュールが提供する types.FunctionType() を利用することで、プログラムの実行時(ランタイム)に関数を動的に定義し、そのまま呼び出すことができます。 動的に関数を作成する手順 コード文字列から関数オブジェクトを生成するには、以下の手順を行います。 types モジュールをインポートします。 実行したいコードを文字列として用意し、組み込み関数 compile() でコードオブジェクトにコンパイルします。 コンパイル済みのコードオブジェクトと、グローバル名前空間となる辞書を types.FunctionType() に渡して、

  8. Pythonで関数から別の関数を返す方法をわかりやすく解説

    Pythonは第一級関数(first-class functions)をサポートしているプログラミング言語です。実際、Pythonにおけるすべての関数は第一級オブジェクトとして扱われます。 これは何を意味するのでしょうか。具体的には、以下のようなことが可能になります。 関数の中から別の関数を返す(returnする) 関数をリストや辞書などのコレクションに格納する 関数を、通常の変数やオブジェクトと同じように扱う さらに、関数の中で別の関数を定義し、それを返すことさえできます。これはクロージャ(closure)と呼ばれる強力なテクニックの基礎にもなる概念です。 サンプルコード:関数内で関数を

  9. Pythonで関数を引数として渡す方法をわかりやすく解説

    Pythonでは、関数もオブジェクトの一つとして扱われるため、他の関数の引数として渡すことができます。この仕組みを活用すると、柔軟で再利用性の高いコードを書くことができます。map()関数を使った例Pythonが標準で提供している代表的な例が、第一引数に関数を受け取る map() 関数です。map(function, iterable, ...) — iterable(イテラブル)の各要素に対してfunctionを適用し、その結果を返します。もちろん、独自に定義したカスタム関数でも、引数として関数を受け取るように実装できます。自作関数sqr(x)を引数として渡すここでは、リストの各要素を2乗す

  10. Pythonで再帰関数を使って階乗を求める方法

    再帰(リカージョン)とは、関数が自分自身を呼び出すことで問題を解決するプログラミング手法です。階乗の計算は、この再帰処理の仕組みを学ぶのに最適な題材として広く知られています。正の整数 n の階乗(n!)は、1 から n までのすべての整数を掛け合わせた値です。たとえば、6 の階乗は次のように計算されます。6! = 6 × 5 × 4 × 3 × 2 × 1 = 720再帰を使った階乗計算のコード例次のコードでは、n = 6 と n = 15 の場合の階乗を計算しています。def factorial(n): if n == 1: return 1 else:

  11. Pythonの関数はオブジェクトなのか?属性を持たせる方法を解説

    Pythonの関数はオブジェクトである結論から言うと、Pythonの関数は完全なオブジェクトです。def文やlambda式を使うと、Pythonは自動的に関数オブジェクトを生成します。通常のオブジェクトと同様に、関数にも属性(アトリビュート)を持たせたり、後から参照したりすることができます。さらに、関数の中にはデータ変数だけでなく、別の関数を定義することも可能です。サンプルコード以下の例では、def文で作成した関数に「score」という属性を代入し、その値を取得しています。また、lambda式で生成したオブジェクトの型も確認しています。def foo(): pass foo.score = 2

  12. Pythonの関数名の前後に付く__(ダブルアンダースコア)の意味とは?理由をわかりやすく解説

    Pythonのコードを読んでいると、__init__ や __str__ のように、名前の前後にダブルアンダースコア(二重のアンダースコア __)が付いた関数やメソッドを目にすることがあります。これらは「ダンダー(dunder:double underscore の略)メソッド」あるいは「特殊メソッド」「マジックメソッド」と呼ばれるもので、Pythonの言語仕様において特別な意味を持つ名前です。 ダブルアンダースコアはPython側で予約された名前 前後にダブルアンダースコアが付いた名前は、Pythonの組み込み機能(ビルトイン)として実質的に予約されています。これらはクラスの振る舞いをカス

  13. コマンドラインからPython関数を実行する方法を解説

    コマンドラインからPython関数を実行する方法Pythonで作成したモジュール内の関数を、わざわざスクリプトファイルを新しく作らずにコマンドラインから直接実行したい場面があります。そんなときに便利なのが、python コマンドの -c(command)オプションです。基本的な使い方例として、foobar.py というモジュールに sayHello() 関数が定義されているケースを考えます。この関数をコマンドラインから実行するには、以下のように -c オプションを使います。$ python -c import foobar; print(foobar.sayHello())-c の後ろには、実

  14. コマンドラインからPythonモジュールを呼び出す方法

    コマンドラインからPythonモジュールを呼び出す基本方法 Pythonでスクリプトをモジュールとして作成する場合、その動作を手軽に確認する方法のひとつが、スクリプトの末尾に関数呼び出しを追加して実行することです。 1. スクリプトの末尾に関数呼び出しを追加する たとえば、次のように関数 fubar() を定義したスクリプトがあるとします。ファイルの最後に関数を呼び出すコードを記述します。 def fubar(): # 何か便利な処理を行う print(fubar が実行されました) fubar() 2. コマンドプロンプトから実行する ターミナル(コマンドプロンプト)で

  15. Python関数はJavaScriptのようにHTML内で実行できるのか?

    ```html 結論:現在のブラウザではPythonを直接実行できない残念ながら、現代のどのWebブラウザにもPythonインタープリタは搭載されていないため、HTMLの中でPythonコードをそのまま実行することはできません。プラグインなしでブラウザ上で動作できる言語は、事実上JavaScriptのみです。かつてはFlashやActiveXといったプラグイン技術によって他の言語や環境を動かすことも可能でしたが、これらはすでに廃止されており、今ではすべての主要ブラウザが標準で解釈・実行できるのはJavaScriptだけとなっています。解決策:トランスパイラを使ってPythonコードをブラウザで

  16. Pythonのグローバル変数とローカル変数の違いとは?わかりやすく解説

    Pythonにおいて、グローバル変数とはプログラム全体(モジュール内のどこからでも)アクセスできる変数のことです。一方、ローカル変数は特定のスコープ内、たとえば関数定義の中でのみアクセスできる変数であり、関数内で一時的に使用される変数などがこれに該当します。コード例以下のコードを見てみましょう。q = I love coffee # グローバル変数 def f(): p = Me Tarzan, You Jane. # ローカル変数 print(p) f() print(q)実行結果このコードを実行すると、次のような出力が得られます。Me Tarzan, You Jan

  17. Pythonのラムダ関数(lambda)とは?基本構文と使い方を実例付きで解説

    Pythonのラムダ関数(lambda関数)は、実行時にその場で生成される「名前を持たない匿名関数」です。通常、1行で記述され、特定の名前に束縛されることなく定義できます。 ラムダ関数には以下のような特徴があります。 関数の定義をその場で返すことができる return文を含まず、常に式(expression)を評価して結果を返す 関数オブジェクトが期待される場所なら、どこにでもラムダ式を記述できる ラムダ関数を使う場面 ある関数が一度しか使わず、呼び出し箇所も一箇所だけであるような場合、ラムダ関数が便利です。このようなケースでは、わざわざdef文で関数に名前を付けて定義する必要はありません

  18. Pythonの無名関数(ラムダ式)とは?基本構文と実用的な使い方をわかりやすく解説

    Pythonにおける無名関数とは Pythonにおける無名関数(匿名関数)とは、その名のとおり「関数名を持たない関数」のことです。通常の関数は def キーワードを使って定義しますが、無名関数は lambda キーワードを使って定義します。このため、無名関数は「ラムダ関数」あるいは「ラムダ式」とも呼ばれています。 ラムダ式の基本的な構文 ラムダ式は次のような形式で記述します。 lambda 引数: 式 引数を受け取り、コロン(:)以降の式の評価結果を自動的に返り値として返します。return 文を書く必要がない点が特徴です。 # 通常の関数定義 def square(x): ret

  19. 【初心者向け】Pythonの*argsと**kwargsの使い方をわかりやすく解説

    *argsとは?Pythonでは、アスタリスク1つ(*)を付けた*argsを関数の仮引数として定義することで、キーワードなしの可変長引数(位置引数)を任意の個数だけ受け取れるようになります。ここで重要なのはアスタリスク(*)の部分であり、「args」という名前自体に特別な意味はありません。あくまで慣習的に使われる名前で、たとえば「*numbers」のように別の名前でも同じように動作します。*argsを使うと、関数呼び出し時に渡された複数の位置引数はタプル(tuple)としてまとめられ、関数内でそのタプルに対して繰り返し処理などを行えます。*argsの使用例次のコードは、渡されたすべての数値を掛

  20. Pythonの関数における変数スコープの仕組みとは?globalキーワードの使い方も解説

    Pythonでは、変数は値を代入した時点で定義されます。C言語など多くの言語とは異なり、事前に宣言しておく必要はなく、いきなり変数を使い始めることができるのが特徴です。x = 141ファイルやモジュールのトップレベル(最上位)で定義された変数は「グローバルスコープ」に属し、関数の中からもアクセスできます。なお、良い設計の原則として、変数はその役割を果たすために必要な最小限のスコープにとどめておくことが推奨されています。例:ローカル変数とグローバル変数の違い次のコードを見てみましょう。x = 141 def foo(): x = 424 # ローカル変数 print(x)

Total 8994 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:2/450  20-コンピューター/Page Goto:1 2 3 4 5 6 7 8