文字列のフォーマット(2)

昨日の続き。

ところでPython Shellから何かわからないことを調べる手段として、help()という関数があります。

>>> help(1)
Help on int object:

class int(object)
 |  int(x[, base]) -> integer
 |  
 |  Convert a string or number to an integer, if possible.  A floating point
...

引数にobjectを渡すとそのobjectのドキュメントを、文字列を渡すとその名前のモジュール、関数その他もろもろ関するドキュメントを表示してくれるみたいです。つまり、さっきのはhelp("int")でも同じってこと。

で、昨日の話だけど、%って文字列の演算子かなって話だったから演算子について調べたいときはどうするんだろう。help("%")じゃダメみたい、、、ちょっと考えて、help("operator")で出てきました。わーい(っていうかこれでいいんだよね?)。ずらずらと見ていきます。

>>> help("operator")
Help on built-in module operator:

NAME
    operator - Operator interface.
...
    __mod__(...)
        mod(a, b) -- Same as a % b.
    
    __mul__(...)
        mul(a, b) -- Same as a * b.
...
    mod(...)
        mod(a, b) -- Same as a % b.
    
    mul(...)
        mul(a, b) -- Same as a * b.

つまり演算子ってメソッド呼び出しってことかな。

>>> "%04d %s".__mod__((12, "hoge"))
'0012 hoge'
>>> mod("%04 %s", (12, "hoge"))

Traceback (most recent call last):
  File "<pyshell#49>", line 1, in -toplevel-
    mod("%04 %s", (12, "hoge"))
NameError: name 'mod' is not defined

ちょっとわかったけどちょっと違うかも。ネムい。