AttributeError:'tuple'对象没有属性'price'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AttributeError:'tuple'对象没有属性'price'相关的知识,希望对你有一定的参考价值。

作为一项功课,我必须以节点作为对象来执行链接列表,而节点将携带Car class作为其数据。不确定我是否正确行事,但我的朋友们试图帮助我,这就是我所拥有的:

class Car:
    def __init__(self, identification = None, name = None, brand = None, 
        price = None, active = None):
            self.identification = identification
            self.name = name
            self.brand = brand
            self.price = price
            self.active = active

class Node:
    def __init__(self, data):
        self.prevNode = None
        self.nextNode = None
        self.data = data

class LinkedList:
    def __init__(self):
        self.head = None

    def insertNode(self, car):
        newNode = Node(car)
        curNode = self.head
        if self.head is None:
            self.head = newNode
        elif newNode.data.price < curNode.data.price:
            newNode.nextNode = self.head
            self.head.prevNode = newNode
            self.head = newNode
        else:
            while curNode.nextNode is not None and curNode.nextNode.data.price <= newNode.data.price:
                curNode = curNode.nextNode
            newNode.nextNode = curNode.nextNode
            curNode.nextNode = newNode

db = LinkedList()

def init(cars):
    for car in cars:
        db.insertNode(car)

def add(car):
    db.insertNode(car)

def updateName(identification, name):
    curNode = db.head
    while curNode.data.id != identification:
        curNode = curNode.next
    curNode.data.name = name

def activateCar(identification):
    curNode = db.head
    while curNode.data.id != identification:
        curNode = curNode.next
    curNode.data.active = True

def calculateCarPrice():
    total = 0
    for i in range(db):
        if db[i].data.active == True:
            total += db[i].data.price
        i += 1
    return total

car1 = (1, 'a', 'audi', 3000, True)
car2 = (1, 'b', 'bmw', 5000, False)
cars = [car1, car2]
init(cars)

在我看来,一切都应该没问题,但是当我调用init函数时它会返回此错误。

Traceback(最近一次调用最后一次):

文件“C:/Users/Matyas/Desktop/ZAL/Cvičení/showroom.py”,第89行,in

的init(汽车)

文件“C:/Users/Matyas/Desktop/ZAL/Cvičení/showroom.py”,第40行,在init中

db.insertNode(汽车)

在insertNode中输入文件“C:/Users/Matyas/Desktop/ZAL/Cvičení/showroom.py”,第26行

elif newNode.data.price <curNode.data.price:

AttributeError:'tuple'对象没有属性'price'

我不明白为什么它甚至返回'tuple'..

答案

你写的地方

car1 = (1, 'a', 'audi', 3000, True)
car2 = (1, 'b', 'bmw', 5000, False)

应该说

car1 = Car(1, 'a', 'audi', 3000, True)
car2 = Car(1, 'b', 'bmw', 5000, False)

以上是关于AttributeError:'tuple'对象没有属性'price'的主要内容,如果未能解决你的问题,请参考以下文章

readline() 方法给出错误:AttributeError: 'tuple' object has no attribute 'readline'

在 PySpark 中展开 json 列 - 架构问题 - AttributeError: 'tuple' object has no attribute 'name'

AttributeError: 'tuple' 对象在使用 mysql-connector 插入数据时没有属性 'encode'

Django AttributeError 'tuple' 对象没有属性 'regex'

如何修复“AttributeError at /orders/create/‘tuple’对象在 Django 中没有属性‘get’

创建 ZipFile 时出现 AttributeError