Poniższy kod próbuje zilustrować, co chcę. Zasadniczo chcę dwóch przypadków "losowych", które działają niezależnie od siebie. Chcę obsadzić "losowe" w ramach jednej klasy bez wpływu na "losowy" w innej klasie. Jak mogę to zrobić?Niezależne wystąpienia "losowego"
class RandomSeeded:
def __init__(self, seed):
import random as r1
self.random = r1
self.random.seed(seed)
def get(self):
print self.random.choice([4,5,6,7,8,9,2,3,4,5,6,7,])
class Random:
def __init__(self):
import random as r2
self.random = r2
self.random.seed()
def get(self):
print self.random.choice([4,5,6,7,8,9,2,3,4,5,6,7,])
if __name__ == '__main__':
t = RandomSeeded('asdf')
t.get() # random is seeded within t
s = Random()
s.get()
t.get() # random should still be seeded within t, but is no longer
Odpowiada na konkretny przypadek, a także na mój ogólny problem. Wielkie dzięki! – Lin
Deepcopying modułu brzmi przerażająco. – FogleBird
Trudno jest wymyślić przypadek, gdy wykonanie kopii modułu ma sens w ramach zdalnie uzasadnionego projektu. –