关于#python#的问题:求解python入门

设计一个Shop 类,类中的属性包括商品名字的列表,names = [“caffee”, “water”, “apple”, “milk”], 价格列表 price = [5.0, 2.0, 3.5, 11.5] ,类中包含方法一shopInfo,打印每件商品的名字和对应价格,方法二 allProduct,求出所有商品的价格总和,并打印出来。
在主程序中创建Shop类对象,调用方法一、方法二

class Shop(object):
    def __init__(self):
        self.names = ["caffe", "water", "apple", "milk"]
        self.prices = [5.0, 2.0, 3.5, 11.5]
    
    def shopInfo(self):
        for name, price in zip(self.names, self.prices):
            print(f"{name} {price}")
    
    def allProduct(self):
        sum = 0.0
        for price in self.prices:
            sum += price
        print(f"Total price: {sum}")

def main():
    shop = Shop()
    shop.shopInfo()
    shop.allProduct()

if __name__ == "__main__":
    main()

就这一题而言,使用类属性和成员属性对结果没有影响

class Shop():
    names = ["caffee", "water", "apple", "milk"]
    price = [5.0, 2.0, 3.5, 11.5]
    
    def shopInfo(self):
        for n, p in zip(Shop.names, Shop.price):
            print(f"{n}{p}")
    
    def allProduct(self):
        print(f"所有商品价格总和: {sum(Shop.price)}")
  
if __name__ == "__main__":
    shop = Shop()
    shop.shopInfo()
    shop.allProduct()