Python 我想从课堂上打印字典中的键

Python 我想从课堂上打印字典中的键,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我试图打印行星的名字,这些名字作为一个键存储在字典里,但是我什么也得不到,只有空间 这是我的代码: class planets: def __init__(self, aDict): self.aDict = aDict def __str__(self): for key in self.aDict.keys(): print(key) aDict = {"Sun": 1000, "Mercury": 10, "Ea

我试图打印行星的名字,这些名字作为一个键存储在字典里,但是我什么也得不到,只有空间

这是我的代码:

class planets:
    def __init__(self, aDict):
        self.aDict = aDict
    def __str__(self):
        for key in self.aDict.keys():
            print(key)



aDict = {"Sun": 1000, "Mercury": 10, "Earth": 60, "Mars": 50, "jupiter": 100}
p = planets(aDict)

您需要在最后添加
p.\uuu str\uuu()

class planets:
    def __init__(self, aDict):
        self.aDict = aDict
    def __str__(self):
        for key in self.aDict:
            print(key)



aDict = {"Sun": 1000, "Mercury": 10, "Earth": 60, "Mars": 50, "jupiter": 100}
p = planets(aDict)
p.__str__()
输出:

Mercury
Sun
Mars
jupiter
Earth

您需要在最后添加
p.\uuu str\uuu()

class planets:
    def __init__(self, aDict):
        self.aDict = aDict
    def __str__(self):
        for key in self.aDict:
            print(key)



aDict = {"Sun": 1000, "Mercury": 10, "Earth": 60, "Mars": 50, "jupiter": 100}
p = planets(aDict)
p.__str__()
输出:

Mercury
Sun
Mars
jupiter
Earth

您需要实际打印
p
,并且需要返回字符串,例如:

    def __str__(self):
        return ' '.join(sorted(self.aDict, key=self.aDict.get))

aDict = {"Sun": 1000, "Mercury": 10, "Earth": 60, "Mars": 50, "jupiter": 100}
p = planets(aDict)
print(p)

您需要实际打印
p
,并且需要返回字符串,例如:

    def __str__(self):
        return ' '.join(sorted(self.aDict, key=self.aDict.get))

aDict = {"Sun": 1000, "Mercury": 10, "Earth": 60, "Mars": 50, "jupiter": 100}
p = planets(aDict)
print(p)
\uuu str\uuu
的“神奇方法”应该
返回一个字符串,而不是自己进行任何打印。使用这样一个不返回字符串的方法会产生错误。使用该方法构建一个字符串,然后返回该字符串。然后,您可以使用
print(p)
“神奇地”调用该方法。例如:

>>> aDict = {"Sun": 1000, "Mercury": 10, "Earth": 60, "Mars": 50, "jupiter": 100}
>>> class planets(object):
...     def __init__(self, aDict):
...         self.aDict = aDict
...     def __str__(self):
...         return '\n'.join(self.aDict)
...
>>> print(planets(aDict))
Mercury
Sun
Earth
Mars
jupiter
\uuu str\uuu
的“神奇方法”应该
返回一个字符串,而不是自己进行任何打印。使用这样一个不返回字符串的方法会产生错误。使用该方法构建一个字符串,然后返回该字符串。然后,您可以使用
print(p)
“神奇地”调用该方法。例如:

>>> aDict = {"Sun": 1000, "Mercury": 10, "Earth": 60, "Mars": 50, "jupiter": 100}
>>> class planets(object):
...     def __init__(self, aDict):
...         self.aDict = aDict
...     def __str__(self):
...         return '\n'.join(self.aDict)
...
>>> print(planets(aDict))
Mercury
Sun
Earth
Mars
jupiter

用于输入self.aDict:
更合适\u str______________________________,直接称呼它而不遵守_str_的标准定义可能不是一个好主意idea@achampion这不是一个好主意,但它的功能也与print相同。
对于键入self.aDict:
更合适,因为python print函数使用str,直接称呼它而不遵守_str_的标准定义可能不是一个好主意idea@achampion这不是一个好主意,但它的功能与打印相同。为什么它要以随机顺序打印它们?有没有办法让它按值顺序打印?您也可以使用
返回'\n'.join(sorted(self.aDict,key=self.aDict.get))
。为什么它要按随机顺序打印它们?有没有办法让它按值顺序打印?您也可以使用
返回'\n'.join(sorted(self.aDict,key=self.aDict.get))