如何使用 __str__ 方法将键值打印为字符串 - 字典

How to print key-value as string using __str__ method - dictionary

我坚持使用 str 方法打印出我想要的内容。 我想打印出这样的格式: { 'key': value, 'key': value, 'key': value, 'key': value, 'key': value } 通过使用 str 方法。

class DataM(object):
   def __init__(self):
       self.a = {}
    
   def insert(self, key, val):
        if not key in self.a.keys():
             self.a[key] = val
       else:
          print("The key is already exist")

  def delete(self, key):
      try:
          del self.a[key]
      except:
          raise ValueError("Cannot remove the key ")

  def get(self, key):
     try:
         return self.a[key]
     except:
         return None
    
  def contain(self, key):
      return key in self.a 

  def __str__(self):
     result = ''
     for key, value in self.a.items():
         result = result+str(key) + " :" + str(value) + ','
     return "{"+ result[:-1]+ "}"
           
    

dataM = DataM()
dataM.insert("a", 200)
dataM.insert("c", 400)
dataM.insert("e", 1)
dataM.insert("g", 23)
dataM.insert("h", 74)
print(dataM)

例如,如果我打印(dataM):结果应该是这样的:{'a':20,'c':400,'e':1,'g':23,'h' : 74} 通过使用 __str__method.

如果大家能给点建议或者想法,将不胜感激。

听起来你想要的是 self.a 字典的字符串表示,所以直接 return 而不是尝试自己重新实现 dict.__str__:

  def __str__(self):
     return str(self.a)

这同样适用于您的其他一些方法,例如:

  def get(self, key):
     return self.a.get(key)

我假设您是出于某些特定的教育目的而将字典包装起来,但在“现实生活”中,您很可能希望跳过所有这些而只使用普通字典。