猿问

如何创建实例变量并在类内部使用?

如何从下面的列表中创建一个实例变量,其中包含一个名为 price 的字典键,我正在尝试使用名为 Library 的类检索所有书籍的价目表


1 ) 这是书籍列表及其详细信息


data = { "books" : [ { "number_of_pages" : 849,

        "price" : 13.550000000000001,

        "publish_date" : 2011,

        "subjects" : [ "Time travel",

            "Assassination"

          ],

        "title" : "11/22/63"

      },

      { "number_of_pages" : 732,

        "price" : 7.9900000000000002,

        "publish_date" : 1999,

        "subjects" : [ "Authors",

            "Custody of children",

            "Grandfathers",

            "Haunted houses",

            "Novelists",

            "Trials (Custody of children)",

            "Widowers",

            "Widows",

            "Writer's block"

          ],

        "title" : "Bag of bones"

      },]}

  

2 ) 我创建了一个名为 Library 的类,它将解压列表并存储变量


class Library:

    def __init__(self,**kwargs):

        

        for k, v in kwargs.items():

            setattr(self, k, v)

            #print(k,v)

        if 'price' in v[0:][1]:

              for c in v[0:][1].items():

                  if 'price' in c:

                    self.price=c['price']

               

        

    def price_book(self):

         return self.price

        

    def __float__(self):

        return self.price

 


Libra = Library(**data)

Price=Libra.price_book()

print(Price)

在尝试使用实例返回时,它是否重新调整了为 price 设置变量的错误?


如何设置实例变量并检索库中的价格列表?


天涯尽头无女友
浏览 178回答 2
2回答

慕莱坞森

if 'price' in v[0:][1]:    for c in v[0:][1].items():        if 'price' in c:            self.price=c['price']items()字典的方法将键值对作为元组返回。因此c是一个元组,例如('price', 7.99).元组由整数索引,而不是字符串。你可能想要self.price = c[1]。
随时随地看视频慕课网APP

相关分类

Python
我要回答