Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
此表达式在Python中为真:{}.keys().insert(0,";)==None。为什么?_Python - Fatal编程技术网

此表达式在Python中为真:{}.keys().insert(0,";)==None。为什么?

此表达式在Python中为真:{}.keys().insert(0,";)==None。为什么?,python,Python,看看我的Python会话: >>> {}.keys().insert(0, "") == None True >>>{}.keys().insert(0,“”==无 真的 但是: >>>k={}.keys() >>>k [] >>>k.插入(0,“”) >>>k [''] 为什么 PS。谢谢你的帮助!Python的设计非常奇怪-不支持链接: 这就是我的问题的根源…列表。insert返回None;当您打印k时,您正在打印列表的新状态。在案例1中,您正在将返回类型检查为None,该返回类型将评

看看我的Python会话:

>>> {}.keys().insert(0, "") == None True >>>{}.keys().insert(0,“”==无 真的 但是:

>>>k={}.keys() >>>k [] >>>k.插入(0,“”) >>>k [''] 为什么

PS。谢谢你的帮助!Python的设计非常奇怪-不支持链接:


这就是我的问题的根源…

列表。insert
返回
None
;当您打印
k
时,您正在打印列表的新状态。

在案例1中,您正在将返回类型检查为
None
,该返回类型将评估为
True

Python
insert
返回
None

Python支持对不可变对象进行方法链接。在易变对象(如列表)上,这会造成关于是返回新对象还是修改现有对象的混淆。在可变对象上的此类方法返回
None
这一事实让您立即知道现有对象正在发生变化,如果您的假设不是这样,那么您在运行代码时会很快发现,而不是在需要跟踪错误假设导致的棘手错误时。@kindall。感谢您的解释,因为我开始思考Python为什么不提供链接+1. >>> k = {}.keys() >>> k [] >>> k.insert(0, "") >>> k ['']