我是Python和编码的新手,可以在线进行一些练习。
我正在写一个用于制作随机数列表的类:
class RandomList:
def create_list(self):
self.list = []
def fill_list(self, min, max, range):
self.list = [random.randint(min, max) for i in range(range)]
首先->
我不理解
self.list = []
下的Pycharm警告消息告诉我:
“实例属性列表是在init之外定义的”
如果我写了,会有什么区别:
class RandomList:
def __init__(self):
self.list = []
其次->
当我调用
RandomList.fill_list
时,fill_list函数不起作用:TypeError:“ int”对象不可调用。
在“ i”下有一个警告消息:
未使用局部变量
我不明白为什么
我在这里不知所措,因为当我使用例如:
a = [random.randint(min, max) for i in range(range)]
在课外,没有任何问题。我想我一定在这里把事情混在一起...
最佳答案
第一:您不能将变量名与最小,最大,范围一起使用
例:
range = 4
for i in range(range): #you will get error
print("Hello!")
您的代码应为
class RandomList:
def create_list(self):
self.list = []
def fill_list(self, minnum, maxnum, rangenum):
self.list = [random.randint(minnum, maxnum) for i in range(rangenum)]
你可以用
randlist = RandomList
randlist.create_list(randlist)
randlist.fill_list(randlist, 1, 5, 3)
print(randlist.list) #prints randomly like [1, 4, 3]
关于python - 为什么不能在定义中使用循环“for in in ...”? (我未使用局部变量),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57040187/