## Tcl9.0.3/Tk9.0.3 Documentation > Tcl Commands > info

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    info — Tcl 解釈実行機能の状態に関する情報を返す Information about the state of the Tcl interpreter
  構文 SYNOPSIS
  説明 DESCRIPTION
    info args procname
    info body procname
    info class subcommand class ?arg ...
    info cmdcount
    info cmdtype commandName
      alias
      coroutine
      ensemble
      import
      native
      object
      privateObject
      proc
      interp
      zlibStream
    info commands ?pattern?
    info complete command
    info constant varName
    info consts ?pattern?
    info coroutine
    info default procname parameter varname
    info errorstack ?interp?
    info exists varName
    info frame ?depth?
      type
        source
        proc
        eval
        precompiled
      line
      file
      cmd
      proc
      lambda
      level
    info functions ?pattern?
    info globals ?pattern?
    info hostname
    info level ?level?
    info library
    info loaded ?interp? ?prefix?
    info locals ?pattern?
    info nameofexecutable
    info object subcommand object ?arg ...
    info patchlevel
    info procs ?pattern?
    info script ?filename?
    info sharedlibextension
    info tclversion
    info vars ?pattern?
  CLASS INTROSPECTION
    info class call class method
    info class constructor class
    info class definition class method
    info class definitionnamespace class ?kind?
    info class destructor class
    info class filters class
    info class forward class method
    info class instances class ?pattern?
    info class methods class ?options...?
      -all
      -private
      -scope scope
        public
        unexported
        private
    info class methodtype class method
    info class mixins class
    info class properties class ?options...
      -all
      -readable
      -writable
    info class subclasses class ?pattern?
    info class superclasses class
    info class variables class ?-private?
  OBJECT INTROSPECTION
    info object call object method
    info object class object ?className?
    info object creationid object
    info object definition object method
    info object filters object
    info object forward object method
    info object isa category object ?arg?
      info object isa class object
      info object isa metaclass object
      info object isa mixin object class
      info object isa object object
      info object isa typeof object class
    info object methods object ?option...?
      -all
      -private
      -scope scope
        public
        unexported
        private
    info object methodtype object method
    info object mixins object
    info object namespace object
    info object properties object ?options...
      -all
      -readable
      -writable
    info object variables object ?-private?
    info object vars object ?pattern?
  EXAMPLES
  EXAMPLES WITH OBJECTS
  SEE ALSO
  KEYWORDS

### NAME

info — Tcl 解釈実行機能の状態に関する情報を返す Information about the state of the Tcl interpreter

### 構文 SYNOPSIS

info option ?arg arg ...?

### 説明 DESCRIPTION

利用可能な命令： Available commands:

info args procname
  procname と名付けられた手続き函数への假引数の名前を返す｡ Returns the names of the parameters to the procedure named procname.

info body procname
  procnameと名付けられた手続き函数の本体を返す｡ Returns the body of the procedure named procname.

info class subcommand class ?arg ...
  class と名付けられた級に関する情報を返す｡下の CLASS INTROSPECTION を参照されたい｡ Returns information about the class named class. See CLASS INTROSPECTION below.

info cmdcount
  この解釈実行機能内で評価された命令の総数を返す｡ Returns the total number of commands evaluated in this interpreter.

info cmdtype commandName
  commandName と名付けられた命令の型を返す｡組込み型は次の通り： Returns a the type of the command named commandName. Built-in types are:

  alias
    commandName は interp alias に創生された｡安全な解釈実行機能内では別名は､別名とその目的対象の両方が可視の場合のみ可視になる｡ commandName was created by interp alias. In a safe interpreter an alias is only visible if both the alias and the target are visible.

  coroutine
    commandName は coroutine に創生された｡ commandName was created by coroutine.

  ensemble
    commandName は namespace ensemble に創生された｡ commandName was created by namespace ensemble.

  import
    commandName は namespace import に創生された｡ commandName was created by namespace import.

  native
    commandNameはTcl_CreateObjCommand対話機能によって､更なる命令の型の登録無しに､直接創生された｡ commandName was created by the Tcl_CreateObjCommand interface directly without further registration of the type of command.

  object
    commandName は公開命令であって､oo::object の具現値又はその仔級を表す｡ commandName is the public command that represents an instance of oo::object or one of its subclasses.

  privateObject
    commandName は私的命令であって､無為設定は my であり､oo::object の具現値､又はその仔級の一つを表す｡ commandName is the private command, my by default, that represents an instance of oo::object or one of its subclasses.

  proc
    commandName は proc に創生された｡ commandName was created by proc.

  interp
    commandName は interp create に創生された｡ commandName was created by interp create.

  zlibStream
    commandName は zlib stream に創生された｡ commandName was created by zlib stream.

info commands ?pattern?
  現在の名前空間内の全ての可視の命令を返す｡もし､pattern が与えられると､ string match に従って合致する名前だけを返す｡pattern の最後の構成物のみが紋様である｡他の構成物は名前空間を識別する｡namespace 説明書の中の NAMESPACE RESOLUTION を参照されたい｡ Returns the names of all commands visible in the current namespace. If pattern is given, returns only those names that match according to string match. Only the last component of pattern is a pattern. Other components identify a namespace. See NAMESPACE RESOLUTION in the namespace(n) documentation.

info complete command
  もし command が完全な命令の場合 1 を返し､それ以外は 0 を返す｡典型的には､行志向入力環境に使われ､使用者に複数行に跨る命令の打鍵入力を許容する｡ Returns 1 if command is a complete command, and 0 otherwise. Typically used in line-oriented input environments to allow users to type in commands that span multiple lines.

info constant varName
  もし､varNameが定数変数(const参照)なら1を返す､それ以外は0を返す｡ Returns 1 if varName is a constant variable (see const) and 0 otherwise.

info consts ?pattern?
  現在の有効範囲内の定数変数のリストを返すか､ pattern(これが与えられると)に合致する定数変数のリストをinfo varsに似た方法で返す｡ Returns the list of constant variables (see const) in the current scope, or the list of constant variables matching pattern (if that is provided) in a manner similar to info vars.

info coroutine
  現在の coroutine の名前を返す､但し､現在 コルーチンがないか､現在のコルーチンが削除されていた場合は空文字列を返す｡ Returns the name of the current coroutine, or the empty string if there is no current coroutine or the current coroutine has been deleted.

info default procname parameter varname
  procname と名付けられた手続き函数の為の假引数 parameter が無為設定の値を有すると､その値を varname 内に保存し 1 を返す｡それ以外は 0 を返す｡ If the parameter parameter for the procedure named procname has a default value, stores that value in varname and returns 1. Otherwise, returns 0.

info errorstack ?interp?
  現在の解釈実行機能内､又は interp が与えられている場合には､その名前の解釈実行機能内の､最後の不都合に関するそれぞれの水準での活性な命令の記述を返す｡ Returns a description of the active command at each level for the last error in the current interpreter, or in the interpreter named interp if given.

  記述は解析字句と假引数との辞書である｡解析字句は現在の処､ CALL と UP と INNER であるが近い将来他の値も導入されるかもしれない｡ CALL は手続函数呼出しを指し示し､その假引数は info level 0 に相当する､ UP は uplevel 等によって生成された変数の枠内の移動を指し示し､以前の CALL 品目に適用される｡その假引数は水準の偏移である｡ INNER は “内部文脈” を識別し､不都合を生じた最も内側の基本的命令かバイト符号命令で､利用できる時の引数に従う｡ CALL と UP は複雑な呼出し経路を提供しているが､INNER は､最も内側の手続函数呼出し内に､副表現の粒度で､障碍のある操作の詳細を提供する｡[訳がよれてる] The description is a dictionary of tokens and parameters. Tokens are currently either CALL, UP, or INNER, but other values may be introduced in the future. CALL indicates a command call, and its parameter is the corresponding info level 0. UP indicates a shift in variable frames generated by uplevel or similar, and applies to the previous CALL item. Its parameter is the level offset. INNER identifies the “inner context”, which is the innermost atomic command or bytecode instruction that raised the error, along with its arguments when available. While CALL and UP provide a trail of the call path, INNER provides details of the offending operation in the innermost procedure call, even to sub-expression granularity.

  この情報は３引数 catch に返される辞書の -errorstack 見出し内にも存在する; info errorstack は対話型の 解釈実行機能内の頂上水準の捕捉不能の不都合を取戻す便利な方法である｡ This information is also present in the -errorstack entry of the options dictionary returned by 3-argument catch; info errorstack is a convenient way of retrieving it for uncaught errors at top-level in an interactive interpreter.

info exists varName
  varName と名付けられた変数が可視で且つ､定義されていると 1 を返し､それ以外は 0 を返す｡ Returns 1 if a variable named varName is visible and has been defined, and 0 otherwise.

info frame ?depth?
  info frame 自身への呼出の深さを返す｡そうでない場合､その深さ depth での活性な命令を記述している辞書を返す､それは info level に可視の全ての命令に､ eval や source や uplevel の様な新しい水準を創生しない命令を追加して､勘定する｡枠の深さは常に現在の水準より大きい｡ Returns the depth of the call to info frame itself. Otherwise, returns a dictionary describing the active command at the depth, which counts all commands visible to info level, plus commands that don't create a new level, such as eval, source, or uplevel. The frame depth is always greater than the current level.

  もし､深さが 0 より大きいと､それはその深さの枠である｡大きくない場合､ 現在の枠から上の枠の数である｡ If depth is greater than 0 it is the frame at that depth. Otherwise it is the number of frames up from the current frame.

  info level と 不都合追跡の通りに､ “foo [bar [x]]” の如く､入れ子になった命令については､ “x” 内部から起動された info frame によって見えるのは “x” のみである｡ As with info level and error traces, for nested commands like “foo [bar [x]]”, only “x” is seen by info frame invoked within “x”.

  辞書は次の鍵語を含んでいるかもしれない： The dictionary may contain the following keys:

  type
    常に存在する｡可能な値は source と proc と eval と precompiled である｡ Always present. Possible values are source, proc, eval, and precompiled.

    source
      source命令経由で積込まれた記述譜｡ A script loaded via the source command.

    proc
      特定の記述譜内の行に追跡できない手続き函数の本体｡ The body of a procedure that could not be traced back to a line in a particular script.

    eval
      eval か uplevel へ提供される記述譜の本体｡ The body of a script provided to eval or uplevel.

    precompiled
      事前に機械語翻訳された記述譜(tbcload梱包で積込める)､更なる情報は利用できない｡ A precompiled script (loadable by the package tbcload), and no further information is available.

  line
    その記述譜の内部の命令の行番号｡予備コンパイルされた命令については利用できない｡型が source の時は､行番号はファイルの先頭からの相対値であり､ここで最後の二つの型については記述譜の先頭からの相対値である｡ The line number of of the command inside its script. Not available for precompiled commands. When the type is source, the line number is relative to the beginning of the file, whereas for the last two types it is relative to the start of the script.

  file
    source 型については､命令を含んでいるファイルの標準化された経路を与える｡ For type source, provides the normalized path of the file that contains the command.

  cmd
    置換が遂行される前の命令｡ The command before substitutions were performed.

  proc
    型 prod については､手続き函数の名前は命令を含んでいる｡ For type proc, the name of the procedure containing the command.

  lambda
    apply 命令経由の名前のない業務の本体として評価れる記述譜内の命令については､その業務の定義｡ For a command in a script evaluated as the body of an unnamed routine via the apply command, the definition of that routine.

  level
    水準に対応する枠については､(未定) For a frame that corresponds to a level, (to be determined).

  命令がどれかの記述譜内で､譬えば､静的に定義された手続き函数内の入れ子になった手続き函数内で､その文字通りの定義へと追跡されることが可能であり､且つ､ファイル又は静的に定義された手続き函数内で文字通りの評価が可能の時､その型は source であり､その場所は記述譜内の絶対行番号である｡それ以外の場合､その型は proc であり､その場所は手続き函数本体内部の行番号である｡ When a command can be traced to its literal definition in some script, e.g. procedures nested in statically defined procedures, and literal eval scripts in files or statically defined procedures, its type is source and its location is the absolute line number in the script. Otherwise, its type is proc and its location is its line number within the body of the procedure.

  その反対に､手続函数の定義又は､動的に評価した環境の中の評価は､たとえ､外部の動的記述譜の最初から相対的に計数することは可能であっても､その記述譜の初めからの相対的行数を計数する｡その種類の数は通常､より理にかなっている｡ In contrast, procedure definitions and eval within a dynamically evaluated environment count line numbers relative to the start of their script, even if they would be able to count relative to the start of the outer dynamic script. That type of number usually makes more sense.

  この振舞いを記述する別の方法は､位置を基準にしたファイルであって､それはできるだけ深く追跡されており､それが不可能である場合は､その行は可能な最小の eval 又は､手続函数の本体に基いて計数される､理由は､その有効範囲は通常の動的外部有効範囲よりも見つけることは容易であるから｡ A different way of describing this behaviour is that file-based locations are tracked as deeply as possible, and where this is not possible the lines are counted based on the smallest possible eval or procedure body, as that scope is usually easier to find than any dynamic outer scope.

  構文形式の {*} は eval のように取り扱われる｡ 即ち､もし､文字リスト引数が与えられると､システムは､リストの語の中の行番号を同様に追跡し､与えられない場合は､全ての行番号はそれぞれの語の初めから相対的に計数される(最小の有効範囲)｡ 　　　　　 The syntactic form {*} is handled like eval. I.e. if it is given a literal list argument the system tracks the line number within the list words as well, and otherwise all line numbers are counted relative to the start of each word (smallest scope)

info functions ?pattern?
  もし pattern が与えられない場合､現在定義されている全ての数学函数のリストを返す｡もし pattern が与えられると､ string match に従って pattern に合致するような名前のもののみを返す｡ If pattern is not given, returns a list of all the math functions currently defined. If pattern is given, returns only those names that match pattern according to string match.

info globals ?pattern?
  もし､ pattern が与えられないと､現在定義されている全ての大域変数のリストを返す｡大域変数は､大域名前空間中の変数である｡もし､ pattern が指定されていると､その名前が pattern に合致するような名前のみが返される｡合致は､string match に関するものと同じ規則を使用して決定される｡ If pattern is not given, returns a list of all the names of currently-defined global variables. Global variables are variables in the global namespace. If pattern is given, only those names matching pattern are returned. Matching is determined using the same rules as for string match.

info hostname
  現在の host の名前を返す｡ Returns the name of the current host.

  この名前は host の完全に修飾された領域の名前であることは保障されていない｡ TCP/IP (DNS) と NetBIOS-志向 の電網の搭載 の両方を伴う体系でよくあるように､装置が幾つかの異なった名前を有する場合､返されるのは､ TCP/IP 電網に適した名前である｡ This name is not guaranteed to be the fully-qualified domain name of the host. Where machines have several different names, as is common on systems with both TCP/IP (DNS) and NetBIOS-based networking installed, it is the name that is suitable for TCP/IP networking that is returned.

info level ?level?
  もしnumberが与えらえないと､そこから､この業務呼ばれた水準｡ それ以外は､与えられた水準で活動的な完全な命令を返す｡ もし､numberが0より大きいと､それは希望水準である｡ それ以外は､現在の水準からnumber水準上である｡ 完全な命令は命令内の単語である､全ての置換が遂行された､即ち､それはリストである｡水準の更なる情報に関してuplevelを参照されたい｡ [訳註:number<--level 判らん????] 　 If number is not given, the level this routine was called from. Otherwise returns the complete command active at the given level. If number is greater than 0, it is the desired level. Otherwise, it is number levels up from the current level. A complete command is the words in the command, with all substitutions performed, meaning that it is a list. See uplevel for more information on levels.

info library
  tcl_libraryの値を返す､それは外部函数辞書の名前であり､その中に､ Tcl記述譜を伴って配布された記述譜が保存されている｡ Returns the value of tcl_library, which is the name of the library directory in which the scripts distributed with Tcl scripts are stored.

info loaded ?interp? ?prefix?
  load命令によって､interp内に積込まれた､ 前置辞prefixを伴った､それぞれのファイルの名前を返す｡ prefixが与えられないと､ それぞれの項目が､積込まれたファイルの名称と､そこにファイルが積込まれた前置辞と､ からなるリストを返す｡ 静的に積込まれた梱包に関して､ファイルの名前は空文字列である｡ interpに関しては､空文字列が現在の解釈実行機能である｡ Returns the name of each file loaded in interp by the load command with prefix prefix . If prefix is not given, returns a list where each item is the name of the loaded file and the prefix for which the file was loaded. For a statically-loaded package the name of the file is the empty string. For interp, the empty string is the current interpreter.

info locals ?pattern?
  もし､ pattern が与えられると､string match に従って pattern に合致するそれぞれの局所変数の名前が返される｡与えられないと､それぞれの局所変数の名前が返される｡ global や upvar や variable により定義された変数は局所変数ではない｡ If pattern is given, returns the name of each local variable matching pattern according to string match. Otherwise, returns the name of each local variable. A variables defined with the global, upvar or variable is not local.

info nameofexecutable
  現在の解釈実行機能の為の算譜の絶対経路を返す｡もしそのようなファイルが認識できないと､空文字列が返される｡ Returns the absolute pathname of the program for the current interpreter. If such a file can not be identified an empty string is returned.

info object subcommand object ?arg ...
  object と言う名前が付いた情報を返す｡ subcommand は下の OBJECT INTROSPECTION で記述されている｡ Returns information about the object named object. subcommand is described OBJECT INTROSPECTION below.

info patchlevel
  大域変数 tcl_patchLevel の値を返す､その中に Tcl 外部函数の正確な版番号が最初に保持されている｡ Returns the value of the global variable tcl_patchLevel, in which the exact version of the Tcl library initially stored.

info procs ?pattern?
  可視の全ての手続き函数を返す｡もし pattern が与えられると､ string match に従って名前が合致するもののみを返す｡ pattern 内の最後の要素のみが実際の紋様と看做される｡どの装飾要素も単に名前空間を選択する｡ namespace(n) 説明書内の NAMESPACE RESOLUTION の項を参照されたい｡ Returns the names of all visible procedures. If pattern is given, returns only those names that match according to string match. Only the final component in pattern is actually considered a pattern. Any qualifying components simply select a namespace. See NAMESPACE RESOLUTION in the namespace(n) documentation.

info script ?filename?
  現在処理されている最も内側の記述譜の経路名を､又は､どの経路名も決められないと空文字列を､返す｡もしファイル名 filename が与えられると､最も内側の記述譜の活動期間中で､今後の info script へのどの様な呼出しにも使われる､返り値を設定する｡これは假想ファイルシステム応用譜で便利である｡ Returns the pathname of the innermost script currently being evaluated, or the empty string if no pathname can be determined. If filename is given, sets the return value of any future calls to info script for the duration of the innermost active script. This is useful in virtual file system applications.

info sharedlibextension
  このOS上で共有される外部函数群の名前として使用される拡張子､譬えば､Windows なら .dll を返す｡もし､共有外部函数群がこのOSで運用されていなければ､空文字を返す｡ Returns the extension used on this platform for names of shared libraries, e.g. .so under Solaris. Returns the empty string if shared libraries are not supported on this platform.

info tclversion
  大域変数 tcl_version の値を返す､その中に Tcl 外部函数の主版番号と副番号が保持されている｡ [訳註 info patchlevel を参照のこと] 　　　 Returns the value of the global variable tcl_version, in which the major and minor version of the Tcl library are stored.

info vars ?pattern?
  もし､ pattern が与えられない場合､全ての可視の変数の名前を返す｡pattern が与えられると､ string match に従って合致する名前のみが返される｡ pattern の最後の要素のみが紋様である｡他の要素は名前空間を識別する｡namespace(n) の中の NAMESPACE RESOLUTION の項を参照されたい｡pattern が修飾された名前の場合､結果は完全に修飾されたものになる｡宣言されても定義されていない変数も結果に含まれる｡ If pattern is not given, returns the names of all visible variables. If pattern is given, returns only those names that match according to string match. Only the last component of pattern is a pattern. Other components identify a namespace. See NAMESPACE RESOLUTION in the namespace(n) documentation. When pattern is a qualified name, results are fully qualified.

  宣言されたが値が与えられてない変数はこの結果に含まれることになる｡ A variable that has been declared but not yet given a value will be included in the results.

#### CLASS INTROSPECTION

info classは以下の副命令の値に対応している: The following subcommand values are supported by info class:

info class call class method
  class の実装の method の没個性型的な実現値の提供に使われる手段実装の記述を返す(没個性型的な実現値はどの様な対象固有の定義も加えられない級による対象実現値)｡これは四要素のリストのリストであり､それぞれの仔リストは､手段の実装の一般型を記述する語(通常の手段については method の一つ､適用された篩については filter ､私的手段については private､未知の手段処理として起動される手段については unknown である)､起動された特定の手段の名前を与える語(それは､ method 型については常に method ､ unknown 型に就いては “unknown”に等しい)､手段を定義する級の完全に修飾した名前を与える語､手段の実現の型を記述する語( Returns a description of the method implementations that are used to provide a stereotypical instance of class's implementation of method (stereotypical instances being objects instantiated by a class without having any object-specific definitions added). This consists of a list of lists of four elements, where each sublist consists of a word that describes the general type of method implementation (being one of method for an ordinary method, filter for an applied filter, private for a private method, and unknown for a method that is invoked as part of unknown method handling), a word giving the name of the particular method invoked (which is always the same as method for the method type, and “unknown” for the unknown type), a word giving the fully qualified name of the class that defined the method, and a word describing the type of method implementation (see info class methodtype).

  註意すべきは､手段の実装が呼び出し連鎖に沿った制御権移動の為に next 命令を実際に使用するかどうか､及び､この命令ファイルが実際には私的手段を含んでいない命令連鎖であるかの検査はない｡ 　　 Note that there is no inspection of whether the method implementations actually use next to transfer control along the call chain, and the call chains that this command files do not actually contain private methods.

info class constructor class
  この副命令は級 class の建設譜の定義の記述を返す｡定義は二要素のリストとして記述されている; 第１要素は建設譜への引数のリストであり､ proc 又は手段の定義への呼出しの引渡しに適した形式ある､第二要素は建設譜の本体である｡もし建設譜が存在しない場合空リストを返す｡ 　　　　 This subcommand returns a description of the definition of the constructor of class class. The definition is described as a two element list; the first element is the list of arguments to the constructor in a form suitable for passing to another call to proc or a method definition, and the second element is the body of the constructor. If no constructor is present, this returns the empty list.

info class definition class method
  この副命令は級 class の名前が method の手段の定義の記述を返す｡定義は二要素のリストとして記述される; 第１要素は手段への引数のリストであり､ proc 又は手段の定義への呼出しの引渡しに適した形式ある､第二要素は手段の本体である｡ 　　　 This subcommand returns a description of the definition of the method named method of class class. The definition is described as a two element list; the first element is the list of arguments to the method in a form suitable for passing to another call to proc or a method definition, and the second element is the body of the method.

info class definitionnamespace class ?kind?
  この副命令は､級 class の kind 定義の為の名前空間の定義を返す；名前空間の定義は class の具現値にのみ効果を及ぼし､ class 自体には及ぼさない｡ kind は､ oo::define の為に使われる名前空間の定義を返す為の -class ､或は､oo::objdefine の為に使われる名前空間の定義を返す為の -instance ､のどちらにもなり得る; -class のkindが無為設定である(但し､これは事実上 oo::class の下の級上でのみ便利である)｡ This subcommand returns the definition namespace for kind definitions of the class class; the definition namespace only affects the instances of class, not class itself. The kind can be either -class to return the definition namespace used for oo::define, or -instance to return the definition namespace used for oo::objdefine; the -class kind is default (though this is only actually useful on classes that are subclasses of oo::class).

  もし級が与えられた種類の名前空間を提供しない場合､この命令は空白文字列を返す｡この様な環境では､ oo::define と oo::objdefine 命令は継承階級の級を使って名前空間に使うべき定義を捜す｡ If class does not provide a definition namespace of the given kind, this command returns the empty string. In those circumstances, the oo::define and oo::objdefine commands look up which definition namespace to use using the class inheritance hierarchy.

info class destructor class
  この副命令は級 class の分解譜の本体を返す｡もし分解譜が実在しない場合は空文字列を返す｡ This subcommand returns the body of the destructor of class class. If no destructor is present, this returns the empty string.

info class filters class
  この副命令は級の上に設定された篩手段のリストを返す｡ 　　　 This subcommand returns the list of filter methods set on the class.

info class forward class method
  この副命令は､ class と呼ばれた級の上に設定された method と呼ばれる転送手段の為の引数リストを返す｡ 　　 This subcommand returns the argument list for the method forwarding called method that is set on the class called class.

info class instances class ?pattern?
  この副命令は､級 class の具現値のリストを返す｡もし任意的な pattern 引数が存在すると､それは返される具現値のリストが string match の規則に合致するよう強制する｡ 　　　 This subcommand returns a list of instances of class class. If the optional pattern argument is present, it constrains the list of returned instances to those that match it according to the rules of string match.

info class methods class ?options...?
  この副命令は､ class と呼ばれた級の上に設定された全ての共通の(即ち､移送された)手段のリストを返す｡次の option のどれかが指定され､どの手段の名前が返されるかを正確に制御する[訳註:exported->exposed(曝された)か?]: 　　　 This subcommand returns a list of all public (i.e. exported) methods of the class called class. Any of the following options may be given, controlling exactly which method names are returned:

  -all
    もし -all 旗印が与えられ､且つ -scope 旗印が与えられないと､ 手段のリストは､級だけでなく級の上位の級とその混合によって定義された手段をも含むことになる｡ 　　 If the -all flag is given, and the -scope flag is not given, the list of methods will include those methods defined not just by the class, but also by the class's superclasses and mixins.

  -private
    もし -private 旗印が与えられ､且つ -scope 旗印が与えらないと､手段のリストは級の非-顕示手段も(もし -all も与えられない場合は上の級との混合も)含むことになる｡註意すべきは､この名前は､真の私的手段との不幸な重複である； この指示項目の名前は旧版との互換性の為に残されている｡ If the -private flag is given, and the -scope flag is not given, the list of methods will also include the non-exported methods of the class (and superclasses and mixins, if -all is also given). Note that this naming is an unfortunate clash with true private methods; this option name is retained for backward compatibility.

  -scope scope
    与えられた可視の有効範囲を有する class の全ての手段のリストを返す｡この指示項目が供給されると､ -all と -private 指示項目は両方とも無視される｡有効範囲についての適正な値は以下の通り： Returns a list of all methods on class that have the given visibility scope. When this option is supplied, both the -all and -private options are ignored. The valid values for scope are:

    public
      公的な有効範囲を伴う手段(即ち､何処からも､この級のどの具現値によっても､呼出せる)のみが返される｡ Only methods with public scope (i.e., callable from anywhere by any instance of this class) are to be returned.

    unexported
      非移送を伴う手段(即ち､my経由でのみ呼出せる)のみが返される｡ Only methods with unexported scope (i.e., only callable via my) are to be returned.

    private
      私的な有効範囲を伴う手段(即ち､この級の手段の内部のみから呼出せる)のみが返される｡ Only methods with private scope (i.e., only callable from within this class's methods) are to be returned.

info class methodtype class method
  もし -all 旗印が与えられ､且つ -scope 旗印が与えられないと､ 手段のリストは､級だけでなく級の上位の級とその混合によって定義された手段をも含むことになる｡ この副命令は級 class の名前が method の手段の為に使われた実装の型の記述を返す｡結果が method の時､更なる情報が info class definition により発見され､結果が forward の時､更なる情報が info class forward により発見される｡ This subcommand returns a description of the type of implementation used for the method named method of class class. When the result is method, further information can be discovered with info class definition, and when the result is forward, further information can be discovered with info class forward.

info class mixins class
  この副命令は､名前が class の級に混合された全ての級のリストを返す｡ 　　　 This subcommand returns a list of all classes that have been mixed into the class named class.

info class properties class ?options...
  この副命令は､ classと命名された級の上で定義された特性を並び揃えたリストを返す｡ optionsは､返される特性を正確に定義する｡ This subcommand returns a sorted list of properties defined on the class named class. The options define exactly which properties are returned:

  -all
    この指示項目により､上位の級からの特性と､ 級の混合とが､返される｡ With this option, the properties from the superclasses and mixins of the class are also returned.

  -readable
    この指示項目(無為設定の振舞)は読出し可能な特性が返される様要請する｡ 読出し可能か書込み可能かのみの特性が返される､両方ではない｡ 　 This option (the default behavior) asks for the readable properties to be returned. Only readable or writable properties are returned, not both.

  -writable
    この指示項目は書込み可能な特性が返される様要請する｡ 読出し可能か書込み可能かのみの特性が返される､両方ではない｡ 　 This option asks for the writable properties to be returned. Only readable or writable properties are returned, not both.

info class subclasses class ?pattern?
  この副命令は､級 class の直接の仔供の級のリストを返す｡指示項目 pattern 引数が存在すると､ string match の規則に沿って合致する様な級が返されるリストを含む｡ 　　　 This subcommand returns a list of direct subclasses of class class. If the optional pattern argument is present, it constrains the list of returned classes to those that match it according to the rules of string match.

info class superclasses class
  この副命令は､級 class の親の級のリストを階層構造の優先順位で返す｡ 　　　 This subcommand returns a list of direct superclasses of class class in inheritance precedence order.

info class variables class ?-private?
  この副命令は､ class と名付けられた級の為に宣言された全ての変数のリストを返す(即ち､それは自動的に級の手段と構成子と破壊子内に存在する)｡ もし -private 指示項目が与えられると､宣言された私的変数を列挙する｡ This subcommand returns a list of all variables that have been declared for the class named class (i.e. that are automatically present in the class's methods, constructor and destructor). If the -private option is given, this lists the private variables declared instead.

#### OBJECT INTROSPECTION

次の副命令値が info object によって運用されている: 　　　 The following subcommand values are supported by info object:

info object call object method
  object の実装の method の没個性型的な実現値の提供に使われる手段実装の記述を返す(没個性型的な実現値はどの様な対象固有の定義も加えられない級による対象実現値)｡これは四要素のリストのリストであり､それぞれの仔リストは､手段の実装の一般型を記述する語(通常の手段については method の一つ､適用された篩については filter ､私的手段については private､未知の手段処理として起動される手段については unknown である)､起動された特定の手段の名前を与える語(それは､ method 型については常に method ､ unknown 型については “unknown” に等しい)､手段を定義する級の完全に修飾した名前を与える語､手段の実現の型を記述する語( info class methodtype を参照されたい)､から構成される｡ Returns a description of the method implementations that are used to provide object's implementation of method. This consists of a list of lists of four elements, where each sublist consists of a word that describes the general type of method implementation (being one of method for an ordinary method, filter for an applied filter, private for a private method, and unknown for a method that is invoked as part of unknown method handling), a word giving the name of the particular method invoked (which is always the same as method for the method type, and “unknown” for the unknown type), a word giving what defined the method (the fully qualified name of the class, or the literal string object if the method implementation is on an instance), and a word describing the type of method implementation (see info object methodtype).

  註意すべきは､手段の実装が呼び出し連鎖に沿った制御権移動の為に next 命令を実際に使用するかどうか､及び､この命令ファイルが実際には私的手段を含んでいない命令連鎖であるかの検査はない｡ 　　 Note that there is no inspection of whether the method implementations actually use next to transfer control along the call chain, and the call chains that this command files do not actually contain private methods.

info object class object ?className?
  もし className が与えられないと､この副命令は対象 object の級を返す｡もし className があると､この副命令は対象 object がこの級か否かを示す論理値を返す｡ 　　 If className is not given, this subcommand returns class of the object object. If className is present, this subcommand returns a boolean value indicating whether the object is of that class.

info object creationid object
  対象 object についての唯一無二の創生識別子を返す｡この創生識別子は対象に対して唯一無二( Tcl 解釈実行機能内では)であり､且つ､対象生成の際に制御できないしその後の変更もできない｡ Returns the unique creation identifier for the object object. This creation identifier is unique to the object (within a Tcl interpreter) and cannot be controlled at object creation time or altered afterwards.

  実装上の註意： 創生識別子は､特に私的変数の､対象に関連する唯一無二の識別子の創生に使われる｡ Implementation note: the creation identifier is used to generate unique identifiers associated with the object, especially for private variables.

info object definition object method
  この副命令は対象 object の名前が method の手段の定義の記述を返す｡定義は二要素のリストとして記述されている; 第１要素は手段への引数のリストであり､ proc 又は手段の定義への呼出しの引渡しに適した形式ある､第二要素は手段の本体である｡ 　　　 This subcommand returns a description of the definition of the method named method of object object. The definition is described as a two element list; the first element is the list of arguments to the method in a form suitable for passing to another call to proc or a method definition, and the second element is the body of the method.

info object filters object
  この副命令は対象の上に設定された篩手段のリストを返す｡ 　　 This subcommand returns the list of filter methods set on the object.

info object forward object method
  この副命令は､ object と呼ばれた対象の上に設定された method と呼ばれる転送手段の為の引数リストを返す｡ 　　 This subcommand returns the argument list for the method forwarding called method that is set on the object called object.

info object isa category object ?arg?
  この副命令は object が特定の範疇に属しているかを検査し､ object 引数がその範疇の基準に合致しているかを指し示す論理値を返す｡運用されている範疇は: 　　　 This subcommand tests whether an object belongs to a particular category, returning a boolean value that indicates whether the object argument meets the criteria for the category. The supported categories are:

  info object isa class object
    これは object が級か否かを返す(即ち､ oo::class かその子供の級の具現値)｡ 　　 This returns whether object is a class (i.e. an instance of oo::class or one of its subclasses).

  info object isa metaclass object
    これは object が級を生産できる級か否かを返す(即ち､ oo::class かその子供)｡ 　　 This returns whether object is a class that can manufacture classes (i.e. is oo::class or a subclass of it).

  info object isa mixin object class
    これは class が直接 object に混合されたか否かを返す｡ 　　　 This returns whether class is directly mixed into object.

  info object isa object object
    これは object が本当に対象であるか否かを返す｡ 　　　 This returns whether object really is an object.

  info object isa typeof object class
    これは class が直接 object の型であるか否かを返す(即ち､ object が class かその子供の級であるか､直接か又は間接か)｡ 　　　 This returns whether class is the type of object (i.e. whether object is an instance of class or one of its subclasses, whether direct or indirect).

info object methods object ?option...?
  この副命令は object と呼ばれる対象の公共(即ち移転された)の手段のリストを返す｡次のどれかの指示項目optionが与えれると､どの名前の手段が返されるか厳格に制御する： This subcommand returns a list of all public (i.e. exported) methods of the object called object. Any of the following options may be given, controlling exactly which method names are returned:

  -all
    もし -all 旗印が与えられ､且つ -scope 旗印が与えらないと､手段のリストは､対象だけでなく級の上位の級とその混合に加え､それらの級の上位の級によって定義された手段をも含むことになる｡ 　　　 If the -all flag is given, and the -scope flag is not given, the list of methods will include those methods defined not just by the object, but also by the object's class and mixins, plus the superclasses of those classes.

  -private
    もし -private 旗印が与えられ､且つ -scope 旗印が与えらないと､ 手段のリストは､対象(もし､-allも与えられていると､級も)の非-移送手段をも含む｡ 註意すべきは､この名称は､不幸にも真の私的手段と衝突している; この指示項目の名前は旧版との両立性の為に維持される｡ If the -private flag is given, and the -scope flag is not given, the list of methods will also include the non-exported methods of the object (and classes, if -all is also given). Note that this naming is an unfortunate clash with true private methods; this option name is retained for backward compatibility.

  -scope scope
    与えられた有効範囲scopeを有する､object上の全ての手段を返す｡ この指示項目が供給されると､-all指示項目と-private指示項目の両方は無視される｡scopeの為の適正な値は以下の通り: Returns a list of all methods on object that have the given visibility scope. When this option is supplied, both the -all and -private options are ignored. The valid values for scope are:

    public
      公的な有効範囲を伴う手段(即ち､何処からも呼出せる)のみが返される｡ Only methods with public scope (i.e., callable from anywhere) are to be returned.

    unexported
      非移送を伴う手段(即ち､my経由でのみ呼出せる)のみが返される｡ Only methods with unexported scope (i.e., only callable via my) are to be returned.

    private
      私的な有効範囲を伴う手段(即ち､この対象の具現値手段の内部のみから呼出せる)のみが返される｡ Only methods with private scope (i.e., only callable from within this object's instance methods) are to be returned.

info object methodtype object method
  この副命令は対象 object の､名前が method の手段の為に使われた実装の型の記述を返す｡結果が method の時には､更なる情報が info object definition により発見されるかもしれず､結果が forward の時には､更なる情報が info object forward により発見されるかもしれない｡ 　　　 This subcommand returns a description of the type of implementation used for the method named method of object object. When the result is method, further information can be discovered with info object definition, and when the result is forward, further information can be discovered with info object forward.

info object mixins object
  この副命令は､ object と名付けられた対象に混入された全ての級のリストを返す｡ 　　 This subcommand returns a list of all classes that have been mixed into the object named object.

info object namespace object
  この副命令は､名前が object の対象の内部的名前空間の名前を返す｡ 　　　 This subcommand returns the name of the internal namespace of the object named object.

info object properties object ?options...
  この副命令はobjectと命令された対象上で定義された特性を並び揃えたリストを返す｡ 指示項目optionsはどの特性が返されるかを､厳格に定める: This subcommand returns a sorted list of properties defined on the object named object. The options define exactly which properties are returned:

  -all
    この指示項目により､級と､上位の級と､対象の混合と､の特性が返される｡ With this option, the properties from the class, superclasses and mixins of the object are also returned.

  -readable
    この指示項目(無為設定の振舞)は読出し可能な特性が返される様要請する｡ 読出し可能か書込み可能かのみの特性が返される､両方ではない｡ 　 This option (the default behavior) asks for the readable properties to be returned. Only readable or writable properties are returned, not both.

  -writable
    この指示項目は書込み可能な特性が返される様要請する｡ 読出し可能か書込み可能かのみの特性が返される､両方ではない｡ 　 This option asks for the writable properties to be returned. Only readable or writable properties are returned, not both.

info object variables object ?-private?
  この副命令は､名前が object の対象の為に宣言された変数のリストを返す(即ち､それは自動的に対象の手段内に存在している)｡ もし -private 指示項目が与えられると､代りに宣言された私的変数を列挙する｡ This subcommand returns a list of all variables that have been declared for the object named object (i.e. that are automatically present in the object's methods). If the -private option is given, this lists the private variables declared instead.

info object vars object ?pattern?
  この副命令は､名前が object の私有の名前空間内の変数のリストを返す｡もし任意附加的な pattern が与えられた時は､それは櫛( string match 展開紋様の構文による)であり､返される変数のリストを制約する｡註意すべきは､ info object variables によって返されたリストとは異なる; それは､現在削除された(unset)変数を含み得る､但しどれかの object の対象(又は､その級､上位の級又はその混合)には自動的に含まれない変数を含む可能性はあるが｡ 　　　　　 This subcommand returns a list of all variables in the private namespace of the object named object. If the optional pattern argument is given, it is a filter (in the syntax of a string match glob pattern) that constrains the list of variables returned. Note that this is different from the list returned by info object variables; that can include variables that are currently unset, whereas this can include variables that are not automatically included by any of object's methods (or those of its class, superclasses or mixins).

### EXAMPLES

この命令は､Tcl 記述譜に保存するに相応しい手続函数を印刷する: 　　　 This command prints out a procedure suitable for saving in a Tcl script:

    proc printProc {procName} {
        set result [list proc $procName]
        set formals {}
        foreach var [info args $procName] {
            if {[info default $procName $var def]} {
                lappend formals [list $var $def]
            } else {
                # Still need the list-quoting because variable
                # names may properly contain spaces.
                lappend formals [list $var]
            }
        }
        puts [lappend result $formals [info body $procName]]
    }

#### EXAMPLES WITH OBJECTS

全ての対象はその級が何かが判っている必要があり､この情報は内省を通して簡単に抽出可能である： Every object necessarily knows what its class is; this information is trivially extractable through introspection:

    oo::class create c
    c create o
    puts [info object class o]
                         → prints "::c"
    puts [info object class c]
                         → prints "::oo::class"

内省の能力は手段の実装が何の級かを見付け如何に定義されたかを得る為に使える｡この手続函数を以下に示す: 　　　 The introspection capabilities can be used to discover what class implements a method and get how it is defined. This procedure illustrates how:

    proc getDef {obj method} {
        foreach inf [info object call $obj $method] {
            lassign $inf calltype name locus methodtype

            # Assume no forwards or filters, and hence no $calltype
            # or $methodtype checks...

            if {$locus eq "object"} {
                return [info object definition $obj $name]
            } else {
                return [info class definition $locus $name]
            }
        }
        error "no definition for $method"
    }

これは定義の調査の別法である; それは手動で手段のリストを階層樹木にまで走査する｡この符号命令は､一つの階層が使われ､混合された複雑な級はないことを仮定している(その様な場合､上述の様に info object call の使用が更に進む簡易な方法である): 　　　 This is an alternate way of looking up the definition; it is implemented by manually scanning the list of methods up the inheritance tree. This code assumes that only single inheritance is in use, and that there is no complex use of mixed-in classes (in such cases, using info object call as above is the simplest way of doing this by far):

    proc getDef {obj method} {
        if {$method in [info object methods $obj]} {
            # 転送無しを仮定する
            # Assume no forwards
            return [info object definition $obj $method]
        }

        set cls [info object class $obj]

        while {$method ni [info class methods $cls]} {
            # 単純な場合を仮定する
            # Assume the simple case
            set cls [lindex [info class superclass $cls] 0]
            if {$cls eq ""} {
                error "no definition for $method"
            }
        }

        # 転送無しを仮定する
        # Assume no forwards
        return [info class definition $cls $method]
    }

### SEE ALSO

global, oo::class, oo::define, oo::object, proc, self, tcl_library, tcl_patchLevel, tcl_version

### KEYWORDS

command, information, interpreter, introspection, level, namespace, object, procedure, variable
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1997 Sun Microsystems, Inc.
Copyright © 1993-1997 Bell Labs Innovations for Lucent Technologies
Copyright © 1998-2000 Ajuba Solutions
Copyright © 2007-2012 Donal K. Fellows