我是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/

10-11 22:26
查看更多