random_integers関数が廃止される(非推奨)?

random_integers関数が廃止される(非推奨)?

 入門講座の合間に時々書いてる Python プログラミング日記です。
 BlogCat 自身が Python の学習過程で得た知識の中から「今後役に立つかどうかわかんないけど、とりあえす取っておこう」と考えたものを放り込んでおく備忘録も兼ねています。たまにお立ち寄りくだされば、何か拾い物があるかもしれません。

random_integers が使えません

 Jupyter Notebook でコードを書いてnumpy モジュールの random_integers という関数を呼び出そうと思ったら、

 DeprecationWarning: This function is deprecated.
 Please call randint(1, 100 + 1) instead.

という警告メッセージが表示されました。日本語に訳しておきます:

 廃止予定機能であることを警告:
 この関数は廃止されます(非推奨です)。
 代わりに randint(1, 100 + 1) を呼び出してください。

 警告文が表示されるだけで、まだ使えることは使えるので、Python 本体 (現在の最新版は 3.6.5) から消えたわけではないようです。しかし、こんなに嫌われるには何か理由があるのだろうと思案してみると ...... 確かに、この関数が非推奨になるのも当然かもしれないと思えてきました。

 random_integers はランダムな整数を呼びだす関数です。
 たとえば "random_integers(100)" と記述すると、1 から 100 までの乱数を生成します。
 しかし、上の忠告にもある通り、randint関数があるので、わざわざこんな関数を作る必要もないはずです。「似たような機能は極力重複しないようにする」という Python の哲学にも明らかに反しています。

 そもそも、random_integers関数 は引数の指定の仕方が不自然です。Range関数は Range(100) と書けば 0 から 99 の数字を返すし、リストやタプルなどのイテラブルオブジェクトの要素のインデックスのつけ方も同様です。だから他の人が random_integers関数を使ったコードを読むと、いらぬ誤解を与えてしまう可能性もあるわけです。う~む。これはいけませんね(← 使おうとしたくせに)。結論としては非推奨な関数は使わないほうが良いということです(← そんなことは誰でもわかる)。

 それにしても最近のエディタは本当に親切ですね。「これを使ってはいけないよ」と警告するだけでなく、「代わりにこの関数を使おうね」とアドバイスまでくれるのですから。私がプログラミングを学び始めた頃(つまり大昔)は、コンピュータというものは、こちらが間違えると無愛想なエラーを返すだけでした。良い時代になったものです。