簡體   English   中英

Python function 調用 class

[英]Python function call in class

我想做一個返回偽隨機數生成器的 class 。 我想將 _rand function 的結果保存在 _r 中,但是當我調用 function _rand(int(time.time())) 時,我收到錯誤消息“rand() 缺少 1 個必需的位置參數:'seed'”。 有人可以解釋一下我做錯了什么。

class PRNG:
import time
_m = 32768
_b = 9757 
_c = 6925
 
 def _rand(self, seed):
     n = seed % self._m
     while True:
         n = (n * self._b + self._c) % self._m
         yield n

_r = _rand(int(time.time()))
         
 def rand(self) :
     return self._r.__next__() 
        
prng = PRNG()
print(prng.rand())

_rand()取兩個 arguments; selfseed 具體來說,您需要提供正在調用該方法的實例。 而不是你所擁有的,嘗試在構造函數中定義_r

def __init__(self):
    self._m = 32768
    self._b = 9757 
    self._c = 6925
    self._r = self._rand(int(time.time()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM