ESP8266 の MicroPython で実行するために、ランダムな数字のリストを特定の (既存の) オブジェクトに割り当てるクラス メソッドを定義しようとしています。私が直面している問題は、このオブジェクトの値が数append()
秒後に空になることです。私が使用しているコードは次のとおりです。
from urandom import getrandbits
class Buffer(list):
def randomize(self, randdims):
bits, nelem = 8, 1
self = Buffer() # In case self had previous content.
for n in randdims: nelem *= n
for _ in range(randdims[0]):
self.append([
((getrandbits(bits) / (2 ** bits)) * 2) - 1
for _ in range(n_elem // randdims[0])
])
しかし、このメソッドを次のように実行した後
>>> buf = Buffer((1,2,3,4))
>>> print(buf.randomize((2,3)))
[1,2,3,4] # instead of a random series of numbers.
self
反復ごとに成長したにもかかわらず、まったく変わっていないようです。self
メソッドを終了した後ではなく、ループ内でインクリメントされるのはなぜですか?