【发布时间】:2018-12-22 14:33:10
【问题描述】:
我查看了 Stack Exchange 的其余部分,发现了一些类似的问题,但与我的不同,并且没有帮助。
我的代码如下:
class star:
def __init__(self):
# irrelevant other variables
self.planets = []
def genPlanets(self):
self.planets.append(random.uniform(self.frostLine*0.98, self.frostLine*1.02))
print ("There is a planet at " + str(self.planets[0]) + " AU away from the star.")
这部分代码向控制台输出以下内容:
[]
在距恒星 2.916687900748318 AU 处有一颗行星。
但是,在代码的下一部分:
def genPlanets:
# irrelevant, working code.
planetSort = planets.sort()
for p in planetSort:
file.write("There is a planet at " + str(p) + " AU away from the star.")
它输出:
Traceback(最近一次调用最后一次):
文件“C:\Users\Dominic\Documents\Coding\The Galaxy Maker\MAin.py”,第 145 行,
Star.outerHabitable, Star.innerPlanetary, Star.outerPlanetary, Star.frostLine, Star.planets)
文件“C:\Users\Dominic\Documents\Coding\The Galaxy Maker\MAin.py”,第 125 行,在 writeData 中
对于行星排序中的 p:
TypeError: 'NoneType' 对象不可迭代
我不明白这是怎么发生的,我不明白为什么 append 函数会返回 None 类型!请帮忙!
【问题讨论】:
标签: python-3.x for-loop iterator append typeerror