如何在没有括号的情况下打印具有多个值的字典?

How to print a dictionary with multiple values without brackets?

到目前为止我有这个:

class Wine:
    def __init__(self, key):
        a = {}
        value = []
        a.setdefault(key, [])

    def addYear(self, value):
        a[key].insert(1, value)

    def addProd(self, value):
        a[key].insert(2, value)
    
    def addCountry(self, value):
        a[key].insert(3, value)
    
    def addPrice(self, value):
        a[key].insert(4, value)
    
    def __str__(self):
        for key, value in a.items():
            value = ', '.join(map(str, value))
            print("{}, {}".format(key, value))
        
b = Wine("Bread and Butter Pinot Noir")
b.addYear("2017")
b.addProd("Sonoma County")
b.addCountry("USA")
b.addPrice("30 USD")
b.__str__()

我希望输出如下所示:

面包和黄油黑皮诺,2017 年,美国索诺玛县,30 美元

但它说“名称 'a' 未定义”

我不认为你理解 类 真的很好,但你仍然需要使用 self.attribute 来使用 class 函数中的任何属性,这里有一个代码可以给你所需的输出

class Wine:
    def __init__(self, key):
        self.a = {}
        self.key = key
        self.value = []
        self.a.setdefault(key, [])

    def addYear(self, value):
        self.a[self.key].insert(1, value)

    def addProd(self, value):
        self.a[self.key].insert(2, value)
    
    def addCountry(self, value):
        self.a[self.key].insert(3, value)
    
    def addPrice(self, value):
        self.a[self.key].insert(4, value)
    
    def __str__(self):
        for key, value in self.a.items():
            value = ', '.join(map(str, value))
            print("{}, {}".format(key, value))
        
b = Wine("Bread and Butter Pinot Noir")
b.addYear("2017")
b.addProd("Sonoma County")
b.addCountry("USA")
b.addPrice("30 USD")
b.__str__()