如何在一个类的两个方法之间使用变量?

时间:2019-01-11 14:46:42

标签: python oop

我正在python中进行随机排序,我似乎无法在我的scramble方法中使用self.fileName方法中的变量__init__。我不确定为什么。

我尝试用fn完全替换'self',但是没有定义self。我尝试使用(self,fn),但是没有什么适合self参数。

class randomsort:
    def __init__(self,fn):
        self.fileName = fn
        print(self.fileName)

    def scramble(self):
        tempList =[]
        for i in self.fileName:
            ran = random.randrange(0,len(self.fileName))
            tempList.append(self.fileName[ran])
        print("-->",tempList)
        self.fileName = tempList

exlist = [1,2,3,4,5,6,7,8,9,10]
randomsort.scramble(exlist)

预期输出是列表的未排序版本,但是输出是:

  

AttributeError:“列表”对象没有属性“ fileName”

1 个答案:

答案 0 :(得分:0)

问题是您没有实例化该类(即您没有向__init__方法发送任何内容,只有scramble正在接收exlist),因此{{1} }从未定义。相反,您应该这样做:

self.fileName