【发布时间】:2021-12-10 16:23:15
【问题描述】:
以下面的代码为例。
import random
class test:
def __init__(self):
x = random.choice([1,2,3])
print(x)
if x == 2:
pass
我在这里要做的是,当 x 等于 2 时,再次运行该函数并获得不同的 x 值。因此,每当我调用 test 类时,它总是分配 x 值而不是 2。
注意:我们必须在
__init__中运行random.choice()并始终获得 2 以外的值,可以根据需要多次运行__init__,除非我们得到不同的价值。x的值是随机的。
我尝试过的
class test:
def __init__(self):
x = random.choice([1,2,3])
if x != 2:
self.x = x
else:
test()
【问题讨论】:
-
我认为你不应该调用
__init__递归。但是while循环怎么样?而且,如果您不想要 2,您当然可以将其从选项列表中删除另一个选项是围绕对象的创建创建循环 -
是的,while 循环运行顺利。我知道不应该使用
__init__递归。我只是想知道如何执行这样的任务。虽然从选项列表中删除值不是选项哈哈