Python将列表作为参数传递给类

2024-05-20 15:26:36 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有以下代码:

locations = [0,1]

class Draw:
    def __init__(self, locations):
        self.locations = locations

    def platforms(self):
        print(self.locations)

Draw.platforms(locations)

终端给了我:

^{pr2}$

有没有一种特定的方法来传递一个列表作为参数?我是新来的,我不明白它为什么能用int参数,但不能用list。在

我想知道为什么会这样,我能做些什么。在

提前谢谢。在


Tags: 方法代码self终端列表参数initdef
3条回答

这可以用所谓的静态方法来实现。在

locations = [0,1]

class Draw:
    def __init__(self, locations):
        self.locations = locations

    @staticmethod
    def platforms(variable):
        print(variable)

Draw.platforms(locations)
[0, 1]

您调用的方法“platforms”并不期望您向它传递一个参数,而是向它传递一个参数。“locations”列表实际上被传递给类的构造函数方法,在实例化它时将调用该方法。调用“platforms”方法时不需要参数并打印它。在

以下是您应该(可能)这样做:

locations = [0,1]

class Draw:
    def __init__(self, locations):
        self.locations = locations

    def platforms(self):
        print(self.locations)

draw = Draw(locations)    
draw.platforms()

您现在所做的是调用platforms([0, 1]),然后它试图解决
[0, 1].locations。这就是你的错误告诉你的:lists没有{}。在

您需要创建一个带有list参数的Draw对象。然后可以调用该对象的platforms方法:

draw = Draw(locations)
draw.platforms()

相关问题 更多 >