我正在尝试创建一个可以获取数字列表的类(class),然后在需要时将它们打印出来。我需要能够从类中创建 2 个对象以获得两个不同的列表。这是我到目前为止所拥有的

class getlist:
    def newlist(self,*number):
        lst=[]
        self.number=number
        lst.append(number)

    def printlist(self):
        return lst

抱歉,我不是很清楚,我对 oop 有点陌生,请您帮帮我,因为我不知道我做错了什么。谢谢。

最佳答案

在 Python 中,当您在对象内部编写方法时,您需要在属于该对象的变量的所有引用前加上 self。 - 像这样:

class getlist:
    def newlist(self,*number):
        self.lst=[]
        self.lst += number #I changed this to add all args to the list

    def printlist(self):
        return self.lst

您之前的代码是创建和修改名为 lst 的局部变量,因此它似乎在调用之间“消失”了。

此外,通常会创建一个构造函数,它具有特殊名称 __init__ :
class getlist:
    #Init constructor
    def __init__(self,*number):
        self.lst=[]
        self.lst += number #I changed this to add all args to the list

    def printlist(self):
        return self.lst

最后,像这样使用
>>> newlist=getlist(1,2,3, [4,5])
>>> newlist.printlist()
[1, 2, 3, [4,5]]

关于python - 为什么这个简单的 python 类不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1603696/

10-09 15:45
查看更多