类和对象

时间:2017-11-17 00:37:37

标签: python

我目前正致力于此,

设计一个类Car。 此类具有以下属性:制造商,型号和价格 Car类应该有返回这些属性的当前值的方法。此外,此类还有一个方法update_price来更改price属性值。

设计一个名为Dealer的课程。 此类具有以下属性:地址和库存。 inventory属性是Car对象的列表。 经销商类应该有方法将汽车对象添加到库存中,从库存中移除汽车对象(应根据汽车模型进行汽车拆除),并更新某个汽车模型的价格。此类还有一个显示整个库存的方法和一个计算库存中所有汽车总价值的方法。

在主功能中,程序会创建经销商对象,​​将多辆车添加到库存中,并显示当前库存。然后程序从库存中移除汽车模型并更新给定汽车模型的价格。最后,程序显示整个库存以及库存中当前所有汽车的总价值。

但是当我运行我的代码时,我得到了

  

TypeError:描述符'追加'需要一个'列表'对象但收到了一个元组'

我不知道如何解决这个问题

class Car:
    def __init__(self, maker, model, price):
        self.__maker=maker
        self.__model=model
        self.__price=price
    def get_model(self):
        return self.__model
    def get_maker(self):
        return self.__maker
    def get_price(self):
        return self.__price

    def create_list(list):
        maker=input('Enter Car maker: ')
        model=input('Enter Car model: ')
        price=float(input('Enter Car price: $'))
        account=(maker, model, price)
        list.append(account)

    def update_price(self):
        self.__price=price
        return self.__update_price

class Dealer():
    def __init__(address, inventory):
        self.__inventory=inventory
        self.__address=address
    def update_price(list):
        model=input('Enter car model: ')
        account=Car(maker, model, price)
        found='false'
        for model in list:
            if account.get_model() == model:
                account.append(price)
                found=='true'
            if found == 'false':
                print('Model Not Found')
        return account
def show_inventory(list):
    show_inventory=print(account)


def calculate_total_value(list):
    print(sum(self.__account.price))

def remove_car(list):
    model=input('Model for removal')
    found = 'false'
    for model in list:
        if account.get_model() ==model:
            account.remove(model)
            found =='true'
    if found =='false':
        print('Model Not Found')
def get_address(address):

    self.__address=address
    return self.__address
def main():
    address=input('Enter address: ')

    account_list=[]
    counter=1
    manytimes=float(input('How many cars to add? '))
    while counter<=manytimes:
        counter=counter+1
        create_list(list)
    show_inventory(account_list)
    remove_car(account_list)
    show_inventory(list)
    update_price(account_list)
    show_inventory(account_list)
    calculate_total_value(account_list)

main()

1 个答案:

答案 0 :(得分:0)

看起来在发生错误的地方,您尝试将某些内容附加到不可变元组,这意味着它无法更改(在这种情况下,您可以& #39; t附加一些东西)。元组非常类似于可以存储值的列表,并且可以通过索引访问(从0开始)。无论您何时尝试追加某些内容,请确保您使用的是列表,而不是元组。如果它是元组,您可以使用list(tuple_name)将其转换为列表,然后您应该能够附加到它。