【Python基礎】help関数

  • URLをコピーしました!
目次

困った時にhelp

これまでいくつか関数を紹介してきました。

ですが、どの関数がどんな機能をもっているのかなかなか覚えるのは大変です。

さらには3PySciで紹介した関数も、独断と偏見で選んだ個人的に使っている機能しか紹介していません。

そこでそれぞれの関数がどんなことができるのか、もっと知りたい!という方もいることでしょう。

もちろんグーグルで検索すれば、ある程度知ることができますが、せっかくならその関数を作った人の「紹介文」なるものがあれば、理解が深まることでしょう。

関数によっては、そんな「紹介文」が用意されているものがありますので、それを見る方法を紹介します。

その関数とはhelp関数になります。

使い方は簡単でhelp(“関数名”)で表示することができます。

例えばprint関数のhelpを見てみます。

help("print")

実行結果
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

これによるとprint関数はprint(値)だけでなく、file、sep、end、flushといった機能をもっているようです。

ちなみにこのprint()の括弧内の値やら文字列のことを引数(ひきすう)といいます。

print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)とあるように、valueがいつも使っている場所で、表示させるための文字列やら数字やらを入れている場所です。

print(value, …,)とあるように、valueは複数入れられるようです。

print("a", "b", "c")

実行結果
a b c

確かに、a b c と表示されました。

sepはどういった機能でしょうか?

sep: string inserted between values, default a space.

デフォルトは1つのスペースで、それぞれの値の間に挿入される文字列だとのことです。

使い方は、print(value, …, sep=’ ‘, )なのでカンマで区切って、sep=’ ‘として使うみたいです。

とりあえずデフォルトと同じ形で使ってみます。

print("a", "b", "c", sep=' ')

実行結果
a b c

次にsep=’_____’(アンダーバー5つ)としてみます。

print("a", "b", "c", sep='_____')

実行結果
a_____b_____c

確かにスペース1つから、アンダーバー5つに変わっています。

今回はprint関数の紹介ではないので、これくらいにしておきますが、新しい関数を学ぶ時には、一回見てみるといいでしょう。

また普段使っている関数でも知らない機能をもっている可能性がありますので、たまに確認するといいかもしれません。

いくつか紹介してみる

せっかくなので、3PySciで解説した関数からいくつか紹介してみましょう。

書き方にルールはなく、人によってそれぞれなので、色々見てみると面白いですよ。

ちなみにインストールしてある関数であれば大丈夫なので、Bunchを見てみます。

その時には、importしてなくてもhelpは見ることができます。

2021/4/4修正 importしていないとhelpは表示されませんでした。

import bunch

help("bunch")

実行結果
Help on package bunch:

NAME
    bunch - Bunch is a subclass of dict with attribute-style access.

DESCRIPTION
    >>> b = Bunch()
    >>> b.hello = 'world'
    >>> b.hello
    'world'
    >>> b['hello'] += "!"
    >>> b.hello
    'world!'
    >>> b.foo = Bunch(lol=True)
    >>> b.foo.lol
    True
    >>> b.foo is b['foo']
    True
    
    It is safe to import * from this module:
    
        __all__ = ('Bunch', 'bunchify','unbunchify')
    
    un/bunchify provide dictionary conversion; Bunches can also be
    converted via Bunch.to/fromDict().
...

長いので割愛しました。

Bunchの場合は、最初に使用例を詳しく書いてくれていますね。

クラスでもheplは表示されるので、辞書(dict)クラスを見てみます。

help("dict")

実行結果
Help on class dict in module builtins:

class dict(object)
 |  dict() -> new empty dictionary
 |  dict(mapping) -> new dictionary initialized from a mapping object's
 |      (key, value) pairs
 |  dict(iterable) -> new dictionary initialized as if via:
 |      d = {}
 |      for k, v in iterable:
 |          d[k] = v
 |  dict(**kwargs) -> new dictionary initialized with the name=value pairs
 |      in the keyword argument list.  For example:  dict(one=1, two=2)
 |  
 |  Methods defined here:
 |  
 |  __contains__(self, key, /)
 |      True if the dictionary has the specified key, else False.
 |  
 |  __delitem__(self, key, /)
 |      Delete self[key].
 ...

これも長いので割愛しました。

私レベルでは、ぱっと見ただけでは、何が書いてあるのかよく分かりません。

最後はosモジュールからchdir。

help("os.chdir")

実行結果
Help on built-in function chdir in os:

os.chdir = chdir(path)
    Change the current working directory to the specified path.
    
    path may always be specified as a string.
    On some platforms, path may also be specified as an open file descriptor.
      If this functionality is unavailable, using it raises an exception.

これは短かった。

Change the current working directory to the specified path.

「現在のディレクトリ(フォルダのことです)を特定のパスに変更する」とあるように、確かに現在地を変更する機能だと分かります。

Help on built-in function chdir in os:

「osモジュールの中の組み込み機能chdirのヘルプ」とあることから、osモジュール内の機能だと分かります。

色々なことが分かるhelp。

困った時にも、そして困っていない時にも見てみるといいかもしれないですね。

次回はデータを表示する際に表形式(テーブル)で表示できるtabulateというパッケージに関して解説をしていきます。

ということで今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次