MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Pythonの基礎 - pass文のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Pythonの基礎 - pass文
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <code>pass</code> 文は、何もしない (No Operation) ということを記述することができる。<br> <br> Pythonでは、ステートメントブロックを指定するためにインデントを利用しており、if文、関数、クラス、ループなどでは必ずインデントされたステートメントを記述する必要がある。<br> <code>pass</code> 文は、将来的にソースコードを記述するためのプレースホルダとして使用することにより、シンタックスエラーを避けてソースコードを記述することができる。<br> <br><br> == サンプルコード == <syntaxhighlight lang="python"> print('Hello!') i = 1 if i == 1: pass # 何もしない print('Bye!') </syntaxhighlight> <br> # 実行例 : Hello! Bye! <br><br> == pass文が必要な理由 == Pythonでは、ステートメントブロックを指定するためにインデントを利用している。<br> <br> 例えば、if文では条件式を記述した後、インデントされたステートメントを記述する必要がある。<br> <syntaxhighlight lang="python"> if 条件: <処理1> <処理2> </syntaxhighlight> <br> しかし、ソースコードを記述する場合は、必ずしも上から順に記述するわけではない。<br> <br> どのような分岐が必要でどのような関数が必要であるか、大まかな流れを記述してからソースコードの詳細を記述する場合がよくあるため、<br> <code>pass</code> 文を将来的にソースコードを記述するためのプレースホルダとして使用することにより、シンタックスエラーを避けてソースコードを記述することができる。<br> <br><br> == 関数でのpass文の使用 == 関数を定義する時、実装を後回しにする場合に <code>pass</code> 文を使用できる。<br> <br> 関数定義では、<code>def</code> 文の後に必ずインデントされたステートメントが必要となる。<br> 関数の実装が未完成の状態でも、<code>pass</code> 文を記述することでシンタックスエラーを回避できる。<br> <syntaxhighlight lang="python"> def calculate_total(items): pass # 後で実装する def validate_input(data): pass # 後で実装する # 関数の骨組みだけ先に定義できる print('関数定義完了') </syntaxhighlight> <br> # 実行例 : 関数定義完了 <br><br> == クラスでのpass文の使用 == クラスを定義する時、メソッドや属性の実装を後回しにする場合に <code>pass</code> 文を使用できる。<br> <br> クラス定義やメソッド定義では、インデントされたステートメントが必要となる。<br> クラスの構造だけ先に設計し、詳細な実装を後で行う場合に便利である。<br> <syntaxhighlight lang="python"> class Animal: pass # 後で実装する class Dog: def __init__(self, name): pass # 初期化処理を後で実装 def bark(self): pass # メソッドを後で実装 def run(self): pass # メソッドを後で実装 # クラスのインスタンスは作成できる dog = Dog('Pochi') print('クラス定義完了') </syntaxhighlight> <br> # 実行例 : クラス定義完了 <br><br> == ループでのpass文の使用 == for文やwhile文などのループ構文でも、<code>pass</code> 文を使用できる。<br> <br> ループの条件だけ先に記述し、処理内容を後で実装する場合や、特定の条件では何もしない場合に使用する。<br> <syntaxhighlight lang="python"> # 特定の要素をスキップする例 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in numbers: if num % 2 == 0: pass # 偶数の場合は何もしない else: print(num) </syntaxhighlight> <br> # 実行例 : 1 3 5 7 9 <br> while文でも同様に使用できる。<br> <syntaxhighlight lang="python"> count = 0 while count < 5: pass # ループ処理を後で実装 count += 1 print('ループ終了') </syntaxhighlight> <br> # 実行例 : ループ終了 <br><br> == 例外処理でのpass文の使用 == try-except文での例外処理において、特定の例外を無視する場合に <code>pass</code> 文を使用できる。<br> <br> エラーが発生しても処理を継続したい場合や、特定の例外は無視して良い場合に便利である。<br> <syntaxhighlight lang="python"> import os # ファイルが存在しない場合でもエラーを無視する try: os.remove('non_existent_file.txt') except FileNotFoundError: pass # ファイルが存在しない場合は何もしない print('処理継続') </syntaxhighlight> <br> # 実行例 : 処理継続 <br> 複数の例外処理を記述する場合の例:<br> <syntaxhighlight lang="python"> def divide(a, b): try: result = a / b print(f'結果: {result}') except ZeroDivisionError: pass # ゼロ除算は無視 except TypeError: print('型エラーが発生しました') divide(10, 2) divide(10, 0) # ゼロ除算は無視される divide(10, 'a') # 型エラーは表示される </syntaxhighlight> <br> # 実行例 : 結果: 5.0 型エラーが発生しました <br><br> == passとEllipsis (...)の比較 == Pythonでは、<code>pass</code> 文の他に、省略記号 (Ellipsis) を表す <code>...</code> も同様にプレースホルダとして使用できる。<br> <br> <code>pass</code> 文 と <code>...</code> の主な違いは以下の通りである。<br> <br> ==== pass文の特徴 ==== * 何もしないことを明示的に示す。 * Python 2系から存在する伝統的な記法 * ステートメントとして使用される。 * 主に空のブロックを定義する時に使用される。 <br> <syntaxhighlight lang="python"> def function1(): pass class Class1: pass </syntaxhighlight> <br> ==== Ellipsis (...)の特徴 ==== * Python 3系で広く使用される。 * 式 (expression) として使用できる。 * 型ヒント (Type Hints) でも使用される。 * より簡潔な記述が可能。 <br> <syntaxhighlight lang="python"> def function2(): ... class Class2: ... # 型ヒントでの使用例 from typing import Callable def process(callback: Callable[..., None]): ... </syntaxhighlight> <br> ==== 使い分けの推奨 ==== 以下の使い分けが一般的である。<br> <br> * プレースホルダとしての使用 *: どちらでも可 *: <code>pass</code> がより明示的、<code>...</code> がより簡潔。 * 型ヒントでの使用 *: <code>...</code> を使用する。 * 抽象メソッドの定義 *: <code>...</code> を使用することが多い。 * Python 2系との互換性が必要 *: <code>pass</code> を使用する。 <br> 比較例を以下に示す。<br> <syntaxhighlight lang="python"> # pass文を使用した場合 def old_style(): pass # Ellipsisを使用した場合 def new_style(): ... # 両方とも同じ動作をする old_style() new_style() print('どちらも正常に動作') </syntaxhighlight> <br> # 実行例 : どちらも正常に動作 <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Python,pass,pass文,プレースホルダ,Ellipsis |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Python]]
Pythonの基礎 - pass文
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse