tkobject プログラム仕様
tkobjectモジュール
このモジュールは、汎用的なユーティリティ機能を提供する基底クラス`tkObject`を定義します。 属性の操作、デバッグ出力、クラス情報の取得など、オブジェクト指向プログラミングにおける共通の機能を提供します。
関連リンク: tkobject.py Library Technical Documentation
- class tklib.tkobject.tkObject[ソース]
ベースクラス:
object概要: 汎用的なユーティリティ機能を提供する基底クラスです。
- 詳細説明:
このクラスは、Pythonオブジェクトに共通して必要とされる様々なヘルパーメソッドを提供します。 属性の取得/設定、メソッドの実行、クラスメンバーのリスト化、デバッグ出力などが含まれます。 他のクラスはこのtkObjectを継承することで、これらのユーティリティ機能を簡単に利用できます。
- 変数:
- ClassPath()[ソース]
概要: モジュール名とクラス名を結合したフルパスを返します。
- 詳細説明:
ModuleName() と ClassName() メソッドの結果を結合し、 "モジュール名.クラス名" の形式の文字列を生成します。
- 戻り値:
モジュール名とクラス名を結合した文字列。
- 戻り値の型:
- FunctionName()[ソース]
概要: 現在実行中の関数の名前を返します。
- 詳細説明:
このメソッドは、sys モジュールがインポートされていることを前提としています。 呼び出し元の関数名を動的に取得するために使用されます。 (既存のコードに`import sys`がありません。実行するとNameErrorが発生します。)
- 戻り値:
現在の関数名。
- 戻り値の型:
- IfYes(condition, vartrue, varfalse)[ソース]
概要: 条件に基づいて2つの値のいずれかを返します。
- 詳細説明:
condition が真と評価される場合は vartrue を返し、 そうでない場合は varfalse を返します。三項演算子の代替として使用できます。
- パラメータ:
condition (bool) -- 評価する条件。
vartrue (any) -- 条件が真の場合に返す値。
varfalse (any) -- 条件が偽の場合に返す値。
- 戻り値:
条件が真であれば`vartrue`、偽であれば`varfalse`。
- 戻り値の型:
any
- debug = 0
- debug_explicit = 0
- debugpprint(level, *args)[ソース]
概要: 指定されたデバッグレベルでpretty-printを使用してメッセージを出力します。(dpprintのエイリアス)
- 詳細説明:
オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま pprint 関数に渡して出力します。複雑なデータ構造のデバッグに適しています。
- debugprint(level, *args)[ソース]
概要: 指定されたデバッグレベルでメッセージを出力します。(dprintのエイリアス)
- 詳細説明:
オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま print 関数に渡して出力します。
- dpprint(level, *args)[ソース]
概要: 指定されたデバッグレベルでpretty-printを使用してメッセージを出力します。
- 詳細説明:
オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま pprint 関数に渡して出力します。複雑なデータ構造のデバッグに適しています。
- dprint(level, *args)[ソース]
概要: 指定されたデバッグレベルでメッセージを出力します。
- 詳細説明:
オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま print 関数に渡して出力します。
- errormsg(funcname, str)[ソース]
概要: エラーメッセージを標準出力に表示します。
- 詳細説明:
モジュール名、クラス名、関数名、および提供されたエラー文字列を含む フォーマットされたエラーメッセージを出力します。
- exec_method(method, *args, **kwarg)[ソース]
概要: 指定されたメソッドを引数付きで実行します。
- 詳細説明:
オブジェクト内に指定された名前のメソッドが存在し、それが呼び出し可能であれば、 提供された位置引数とキーワード引数を使用してそのメソッドを実行します。 メソッドが存在しない、または呼び出し可能でない場合は何も行いません。
- get(key, defval=None)[ソース]
概要: オブジェクトのインスタンス変数 __dict__ から指定されたキーの値を返します。
- 詳細説明:
キーが存在しない場合は defval を返します。
- パラメータ:
key (str) -- 取得する属性のキー(名前)。
defval (any) -- キーが存在しない場合に返すデフォルト値。
- 戻り値:
指定されたキーの値、またはデフォルト値。
- 戻り値の型:
any
- get2(key, defval=None)[ソース]
概要: 変数名とインデックス(またはキー)を含む文字列から属性値を取得します。
- 詳細説明:
_analyze_varstr を使用してキーを解析し、obj.varname[index] の形式で アクセスを試みます。例えば、"my_list[0]" のようなキーでリストの要素を取得できます。 インデックスが指定されていない場合は、変数名に対応する値をそのまま返します。
- パラメータ:
key (str) -- 取得する属性のキー文字列。例: "variable_name", "list_name[index]", "dict_name['key']"
defval (any) -- キーが存在しない場合に返すデフォルト値。
- 戻り値:
指定されたキーまたはインデックスに対応する値、またはデフォルト値。
- 戻り値の型:
any
- get_attributes()[ソース]
概要: クラスの全ての属性名(メソッドと変数を含む)のリストを返します。
- 詳細説明:
dir(self.__class__) を使用して、クラスとその基底クラスのすべての属性名を返します。
- get_dict()[ソース]
概要: オブジェクトの __dict__ を返します。
- 詳細説明:
インスタンスの属性を格納している辞書を直接返します。
- 戻り値:
オブジェクトの __dict__ 辞書。
- 戻り値の型:
- get_member_functions(obj=None)[ソース]
概要: オブジェクトまたは指定されたオブジェクトのクラスに属する呼び出し可能なメソッド名のリストを返します。
- 詳細説明:
obj が指定されない場合、自身のクラスのメソッドをリストします。 obj が指定された場合、そのオブジェクトのクラスのメソッドをリストします。
- get_member_variables(obj=None)[ソース]
概要: オブジェクトまたは指定されたオブジェクトのクラスに属する呼び出し可能でない変数名のリストを返します。
- 詳細説明:
obj が指定されない場合、自身のクラスの変数をリストします。 obj が指定された場合、そのオブジェクトのクラスの変数をリストします。 クラスレベルの変数を含みます。
- get_members()[ソース]
概要: クラスのメソッド、変数、およびインスタンス辞書をまとめて返します。
- 詳細説明:
クラスに定義されている呼び出し可能なメソッドのリスト、呼び出し可能でない変数のリスト、 そしてインスタンスの __dict__ をタプルとして返します。
- print_attributes(print_header=1)[ソース]
概要: オブジェクトの全てのインスタンス属性とその値をコンソールに出力します。
- 詳細説明:
self.__dict__ に格納されている全てのキーと値のペアを整形して出力します。 print_header が1の場合、クラス名を含むヘッダー行が出力されます。
- パラメータ:
print_header (int) -- ヘッダーを出力するかどうか (1: 出力, 0: 出力しない)。
- 戻り値:
None
- 戻り値の型:
None
- set_attribute(key, val)[ソース]
概要: オブジェクトのインスタンス変数 __dict__ に指定されたキーと値を設定します。
- パラメータ:
key (str) -- 設定する属性のキー(名前)。
val (any) -- 設定する値。
- 戻り値:
None
- 戻り値の型:
None
- set_attribute2(key, val, assign_dict_element_vars=False)[ソース]
概要: 変数名とインデックス(またはキー)を含む文字列を使用して属性値を設定します。
- 詳細説明:
_analyze_varstr を使用してキーを解析し、obj.varname[index] = val の形式で 値を設定します。例えば、"my_list[0]" のようなキーでリストの要素を更新できます。 インデックスが指定されていない場合は、変数名に対応する値を直接設定します。 assign_dict_element_vars がTrueの場合、解析前のキーもそのまま辞書に設定されます。