tkobject プログラム仕様

tkobjectモジュール

このモジュールは、汎用的なユーティリティ機能を提供する基底クラス`tkObject`を定義します。 属性の操作、デバッグ出力、クラス情報の取得など、オブジェクト指向プログラミングにおける共通の機能を提供します。

関連リンク: tkobject.py Library Technical Documentation

class tklib.tkobject.tkObject[ソース]

ベースクラス: object

概要: 汎用的なユーティリティ機能を提供する基底クラスです。

詳細説明:

このクラスは、Pythonオブジェクトに共通して必要とされる様々なヘルパーメソッドを提供します。 属性の取得/設定、メソッドの実行、クラスメンバーのリスト化、デバッグ出力などが含まれます。 他のクラスはこのtkObjectを継承することで、これらのユーティリティ機能を簡単に利用できます。

変数:
  • debug (int) -- デバッグ出力のレベルを設定します。この値以上のレベルの`dprint`や`dpprint`が実行されます。

  • debug_explicit (int) -- 厳密なデバッグモードを設定します。(現在は未使用)

ClassName()[ソース]

概要: オブジェクトのクラス名を返します。

戻り値:

オブジェクトのクラス名。

戻り値の型:

str

ClassPath()[ソース]

概要: モジュール名とクラス名を結合したフルパスを返します。

詳細説明:

ModuleName()ClassName() メソッドの結果を結合し、 "モジュール名.クラス名" の形式の文字列を生成します。

戻り値:

モジュール名とクラス名を結合した文字列。

戻り値の型:

str

FunctionName()[ソース]

概要: 現在実行中の関数の名前を返します。

詳細説明:

このメソッドは、sys モジュールがインポートされていることを前提としています。 呼び出し元の関数名を動的に取得するために使用されます。 (既存のコードに`import sys`がありません。実行するとNameErrorが発生します。)

戻り値:

現在の関数名。

戻り値の型:

str

IfYes(condition, vartrue, varfalse)[ソース]

概要: 条件に基づいて2つの値のいずれかを返します。

詳細説明:

condition が真と評価される場合は vartrue を返し、 そうでない場合は varfalse を返します。三項演算子の代替として使用できます。

パラメータ:
  • condition (bool) -- 評価する条件。

  • vartrue (any) -- 条件が真の場合に返す値。

  • varfalse (any) -- 条件が偽の場合に返す値。

戻り値:

条件が真であれば`vartrue`、偽であれば`varfalse`。

戻り値の型:

any

ModuleName()[ソース]

概要: オブジェクトが属するモジュール名を返します。

戻り値:

現在のモジュール名。

戻り値の型:

str

callable(method)[ソース]

概要: 指定されたメソッドが呼び出し可能であるかを確認します。

パラメータ:

method (str) -- 確認するメソッド名。

戻り値:

指定されたメソッドが呼び出し可能であればTrue、そうでない場合はFalse。

戻り値の型:

bool

debug = 0
debug_explicit = 0
debugpprint(level, *args)[ソース]

概要: 指定されたデバッグレベルでpretty-printを使用してメッセージを出力します。(dpprintのエイリアス)

詳細説明:

オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま pprint 関数に渡して出力します。複雑なデータ構造のデバッグに適しています。

パラメータ:
  • level (int) -- メッセージを出力するためのデバッグレベル。

  • args (tuple) -- 出力するメッセージの可変引数。

戻り値:

None

戻り値の型:

None

debugprint(level, *args)[ソース]

概要: 指定されたデバッグレベルでメッセージを出力します。(dprintのエイリアス)

詳細説明:

オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま print 関数に渡して出力します。

パラメータ:
  • level (int) -- メッセージを出力するためのデバッグレベル。

  • args (tuple) -- 出力するメッセージの可変引数。

戻り値:

None

戻り値の型:

None

dpprint(level, *args)[ソース]

概要: 指定されたデバッグレベルでpretty-printを使用してメッセージを出力します。

詳細説明:

オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま pprint 関数に渡して出力します。複雑なデータ構造のデバッグに適しています。

パラメータ:
  • level (int) -- メッセージを出力するためのデバッグレベル。

  • args (tuple) -- 出力するメッセージの可変引数。

戻り値:

None

戻り値の型:

None

dprint(level, *args)[ソース]

概要: 指定されたデバッグレベルでメッセージを出力します。

詳細説明:

オブジェクトの debug レベルが指定された level 以上の場合にのみ、 引数 args をそのまま print 関数に渡して出力します。

パラメータ:
  • level (int) -- メッセージを出力するためのデバッグレベル。

  • args (tuple) -- 出力するメッセージの可変引数。

戻り値:

None

戻り値の型:

None

errormsg(funcname, str)[ソース]

概要: エラーメッセージを標準出力に表示します。

詳細説明:

モジュール名、クラス名、関数名、および提供されたエラー文字列を含む フォーマットされたエラーメッセージを出力します。

パラメータ:
  • funcname (str) -- エラーが発生した関数名。

  • str (str) -- エラーの詳細を示すメッセージ。

戻り値:

None

戻り値の型:

None

exec_method(method, *args, **kwarg)[ソース]

概要: 指定されたメソッドを引数付きで実行します。

詳細説明:

オブジェクト内に指定された名前のメソッドが存在し、それが呼び出し可能であれば、 提供された位置引数とキーワード引数を使用してそのメソッドを実行します。 メソッドが存在しない、または呼び出し可能でない場合は何も行いません。

パラメータ:
  • method (str) -- 実行するメソッドの名前。

  • args (tuple) -- メソッドに渡す位置引数。

  • kwarg (dict) -- メソッドに渡すキーワード引数。

戻り値:

None

戻り値の型:

None

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__) を使用して、クラスとその基底クラスのすべての属性名を返します。

戻り値:

属性名のリスト。

戻り値の型:

list[str]

get_class()[ソース]

概要: オブジェクトのクラスを返します。

戻り値:

オブジェクトのクラス。

戻り値の型:

type

get_dict()[ソース]

概要: オブジェクトの __dict__ を返します。

詳細説明:

インスタンスの属性を格納している辞書を直接返します。

戻り値:

オブジェクトの __dict__ 辞書。

戻り値の型:

dict

get_member_functions(obj=None)[ソース]

概要: オブジェクトまたは指定されたオブジェクトのクラスに属する呼び出し可能なメソッド名のリストを返します。

詳細説明:

obj が指定されない場合、自身のクラスのメソッドをリストします。 obj が指定された場合、そのオブジェクトのクラスのメソッドをリストします。

パラメータ:

obj (object | None) -- メンバー関数を取得する対象のオブジェクト。指定されない場合は自身のオブジェクト。

戻り値:

呼び出し可能なメソッド名のリスト。

戻り値の型:

list[str]

get_member_variables(obj=None)[ソース]

概要: オブジェクトまたは指定されたオブジェクトのクラスに属する呼び出し可能でない変数名のリストを返します。

詳細説明:

obj が指定されない場合、自身のクラスの変数をリストします。 obj が指定された場合、そのオブジェクトのクラスの変数をリストします。 クラスレベルの変数を含みます。

パラメータ:

obj (object | None) -- メンバー変数を取得する対象のオブジェクト。指定されない場合は自身のオブジェクト。

戻り値:

呼び出し可能でない変数名のリスト。

戻り値の型:

list[str]

get_members()[ソース]

概要: クラスのメソッド、変数、およびインスタンス辞書をまとめて返します。

詳細説明:

クラスに定義されている呼び出し可能なメソッドのリスト、呼び出し可能でない変数のリスト、 そしてインスタンスの __dict__ をタプルとして返します。

戻り値:

(メソッド名のリスト, 変数名のリスト, インスタンス辞書) のタプル。

戻り値の型:

tuple[list[str], list[str], dict]

hasattr(attribute)[ソース]

概要: オブジェクトが指定された属性を持っているかを確認します。

パラメータ:

attribute (str) -- 確認する属性名。

戻り値:

オブジェクトが指定された属性を持っている場合はTrue、そうでない場合はFalse。

戻り値の型:

bool

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の場合、解析前のキーもそのまま辞書に設定されます。

パラメータ:
  • key (str) -- 設定する属性のキー文字列。例: "variable_name", "list_name[index]", "dict_name['key']"

  • val (any) -- 設定する値。

  • assign_dict_element_vars (bool) -- 解析前のキーも辞書に設定するかどうか。

戻り値:

None

戻り値の型:

None

update(check_defined=False, **kwargs)[ソース]

概要: キーワード引数を使用してオブジェクトの属性を一括更新します。

詳細説明:

提供されたキーワード引数のキーと値のペアを、オブジェクトの属性として設定します。 check_defined がTrueの場合、既存の属性として定義されていないキーが kwargs に含まれていると、 エラーメッセージを出力し、プログラムを終了します。

パラメータ:
  • check_defined (bool) -- 未定義のキーが含まれている場合にエラーを発生させるかどうか。

  • kwargs (dict) -- 更新する属性名と値のペア。

戻り値:

None

戻り値の型:

None