私はPythonを学んでいますが、今はPythonのimport文について学んでいます。私はいくつかのコードをテストしていましたが、私は珍しいものに出くわしました。ここに私がテストしていたコードがあります。さまざまなモジュールで別の働きをする文としてインポートしますか?
from math import pow as power
import random as x
print(pow(2, 3))
print(power(2, 3))
print(x.randint(0, 5))
print(random.randint(0, 5))
私はPythonで、あなたはas
を使用してモジュールの名前を再割り当てすることができますことを学んだので、私は電源にPOWを再割り当て。私はpow(2, 3)
とpower(2, 3)
が同じものを出力することを期待していました。しかし、pow(2, 3)
は整数である8
を出力し、power(2, 3)
は8.0
を出力します。これはfloatです。何故ですか?
さらに、random
モジュールをインポートし、その名前をx
に設定しました。 powとpowerの場合は、古い名前pow
と新しい名前power
の両方が働いていました。しかし、このランダムモジュールでは、新しい名前x
だけが動作し、古い名前random
は機能しません。 print(x.randint(0, 5))
が動作しますが、random.randint(0, 5)
は機能しません。なぜこれはそうですか?
誰かが私のようなPython初心者に私のコードが私が期待している通りに働いていない理由を説明してもらえますか?私はPythonバージョン3.62を使用しています。
と呼ばれていたものではないとして、それをインポートしたものをモジュールを使用することができる「として」あなたが使用している場合ので、それはPythonで、通常
動作しないランダムが呼び出されません'pow'は組み込み' pow'関数を使用しているからです。 'as'を使うと、その関数をその名前に束縛します。 'math.pow'をインポートしてそれを' pow'という名前にバインドすることはなく、 'math.pow'をインポートして' power'のような別の名前にバインドします。 – Li357
あなたの期待は間違っていました。あなたが 'as'を使うとモジュール/ function/classを別の名前として読み込みます。だから、 'ランダム'は動作しません。 'pow'がする理由は、pythonに' pow'関数が組み込まれているからです。 –