所以,我有以下代码:
locations = [0,1]
class Draw:
def __init__(self, locations):
self.locations = locations
def platforms(self):
print(self.locations)
Draw.platforms(locations)
终端给了我
AttributeError: 'list' object has no attribute 'locations'
是否有将列表作为参数传递的特定方法?我是新手,我不明白为什么它与int参数一起使用,但不适用于列表。
我想知道为什么会这样,我该怎么办。
谢谢。
答案 0 :(得分:1)
您当前正在做的是呼叫platforms([0, 1])
,然后尝试解决该问题
[0, 1].locations
。这就是您的错误告诉您的内容:list
没有locations
。
您需要创建一个带有列表参数的Draw
对象。然后,您可以调用该对象的platforms
方法:
draw = Draw(locations)
draw.platforms()
答案 1 :(得分:0)
您正在调用方法“ platforms”,该方法不希望您将其传递给参数,而是将其传递给参数。实际上,“位置”列表将传递给您的类的构造方法,该方法在实例化它时会被调用。您的“平台”方法将不带参数地调用并打印。
以下是您应该(可能)执行的操作:
locations = [0,1]
class Draw:
def __init__(self, locations):
self.locations = locations
def platforms(self):
print(self.locations)
draw = Draw(locations)
draw.platforms()
答案 2 :(得分:0)
这可以通过所谓的静态方法完成。
locations = [0,1]
class Draw:
def __init__(self, locations):
self.locations = locations
def platforms(variable):
print(variable)
Draw.platforms(locations)
[0, 1]
答案 3 :(得分:0)
locations = [0, 1]
class Draw:
def __init__(self, locations):
self.locations = locations
def platforms(self):
print(self.locations)
Draw(locations).platforms()