お聞きしたいこと
Python3.6にてrandom
モジュールを下記main.py
に記載のようにimportすると、
choice()
をrandom.choice()
と言った形で呼び出しできるようになりますが、
random.py
を確認してみると、choice()
はRandom
クラス内で定義されている関数に見えます。
module名.関数名()
で呼び出しするには、module.py
に直接(?クラスメソッド出ない形?)関数を定義しないとならない認識ですが、
なぜchoice関数はRandomクラスのインスタンスを作成せずに直接module名.関数()で呼び出しできるのでしょうか。
参考スクリプト
main.py
python3
1import random 2 3 4if __name__ == "__main__": 5 numbers = [1, 100] 6 print(random.choice(numbers)) // ← random.random.choice()と呼び出すのが適切でないか(モジュール.コンストラクタ.関数名())
random.py
python
1class Random(_random.Random): 2 3: 4 5## -------------------- sequence methods ------------------- 6 def choice(self, seq): 7 """Choose a random element from a non-empty sequence.""" 8 try: 9 i = self._randbelow(len(seq)) 10 except ValueError: 11 raise IndexError('Cannot choose from an empty sequence') from None 12 return seq[i] 13 14:
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。