我想尝试不同的随机数生成器,但不想到处更改代码
所以我定义了一个全局变量rG
rG = None
# and provide an intialisation routine
def initrG(randomGenerator):
global rG
if (randomGenerator == "secret"):
rG = randbelow
elif (randomGenerator == "mple"):
rG = random.randint
elif (randomGenerator == "numpyrandint"):
rG = numpy.random.randint
else:
rG = None
然后在中使用rG-like
randomNumber = rg (10)
根据initrG例程的初始调用调用不同的生成器
两个问题:
a)不知何故,功能分配似乎不起作用
b)功能具有不同数量的参数。这应该如何处理
一般来说,让rG是一个具有确定使用哪种算法的状态的类会更清楚,但您明确要求不必重写代码
这里有一种可能的方法,使用functools.partial创建小包装函数。或者自己创建包装函数,这样会更清楚地看到每个函数都在做什么
相关问题 更多 >
编程相关推荐