python-3.x - 为什么附加到 python 列表将其类型设置为无
问题描述
我查看了 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.")
它输出:
回溯(最近一次通话最后):
文件“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 类型!请帮忙!
解决方案
尝试这个:
def genPlanets:
# irrelevant, working code.
planets.sort()
for p in planets:
file.write("There is a planet at " + str(p) + " AU away from the star.")
.sort() 方法转换您应用它的对象,而不是返回排序列表。
推荐阅读
- kubernetes - 使用 kops 在 gcp 上验证集群时出现 TLS 握手超时错误
- typescript - 使用 React 和 Apollo 客户端防止对列表中的子元素进行多余的重新获取和重新绘制
- java - 无效值用户输入再次要求放入数组
- sharepoint - JMETER 的 SharePoint 应用程序可行性
- rsocket - Spring Webflux vs Rsocket
- php - 禁止 mediawiki 中的警告
- java - 具有继承的静态变量
- http - 配置 X-XSS 保护标头
- angular - 使用反应形式的角度电子邮件验证
- firebase - Flutter,FireStore如何一次更新所有文档中的字段