首页 > 解决方案 > 如何向 Python 中的现有类实例添加新值?

问题描述

我正在尝试向现有的类实例添加一个新值,但我失败了。我将直接解释我正在尝试做的事情并显示我的代码:

假设我有许多不同名字的人,他们有不同价值的主题。输入应如下所示:

Joe -> car -> 5000
Mike -> house -> 100000
John -> phone -> 1000
Joe -> house -> 80000
etc.

当我得到一个同名的输入时,我应该将新的主题附加到现有的主题中,并从所有主题中列出一个列表并添加两个值。最后,当我得到输入时:

Joe vs John 

只有当他们至少有一个来自同一类别的主题时,我才应该比较它们(在这个例子中它将是“房子”),并且这种情况一直持续到我得到命令“停止”。


class Person:
    def __init__(self, name, subject, price):
        self.name = name
        self.subject = subject
        self.price = price

people_list = []

while True:
    data_input = input().split(" -> ")

    if data_input[0] == "Stop":
        break

    elif len(data_input) == 3:
        name, subject, price = data_input[0], data_input[1], data_input[2]
        same_name = [x for x in people_list if x.name == name]
        if len(same_name)>0:

            (......)

        else:
            person = Person(name, subject, price)
            people_list.append(person)


    else:
        info = data_input[0].split()
        name_1, name_2 = info[0], info[2]
        ....

因此我有3个问题:

  1. 我可以直接在课堂上以某种方式添加新主题及其价值吗?这将创建一个包含所有主题的列表和一个包含班级中每个名字的所有价格的列表,对吗?

  2. 如果这是不可能的,我可以以某种方式将新主题附加到列表中(本例中为 people_list)吗?我认为这是不可能的,或者如果可能的话,那就更复杂了。

  3. 如何在不使用列表理解的情况下在课堂上进行搜索?

非常感谢您!

标签: pythonlistclass

解决方案


推荐阅读