私信  •  关注

user2357112 supports Monica

user2357112 supports Monica 最近创建的主题
user2357112 supports Monica 最近回复了
3 年前
回复了 user2357112 supports Monica 创建的主题 » Python在try except finally中与返回值混淆

这个 finally 在返回值之前执行,但返回值已被计算。

return num 评估 num ,得到 1 ,然后 最后 街区开始了。这个 最后 块增量 号码 ,但返回值已经计算过了,所以这无关紧要。最后 1. 返回“计算早”的值。

3 年前
回复了 user2357112 supports Monica 创建的主题 » Python是否在try/except的末尾添加了异常列表?

你试图索引的数据结构 [thing1, thing2, thing4] [thing1, thing2, some_magic_thing_that_raises_an_IndexError, thing4] .索引0、1和2是有效的,但索引3超出范围,因此最后会有一个索引器。你可能期望在第2和第4件事之间有一个额外的东西,但这不是索引器发生的地方。

6 年前
回复了 user2357112 supports Monica 创建的主题 » Python pytest不显示断言差异

docs :

报告失败断言的详细信息是通过在运行断言语句之前重写它们来实现的。重写的断言语句将内省信息放入断言失败消息中。 pytest 只重写由其测试收集过程直接发现的测试模块,因此 .

您可以通过调用 register_assert_rewrite 在你导入它之前(一个很好的地方 conftest.py

6 年前
回复了 user2357112 supports Monica 创建的主题 » python format_spec语法[[填充]对齐]

是的,如果你有一个填充,你必须有一个对齐。这个 . 在您的测试中不被视为填充,因为您缺少一个对齐;而是 .10 被解析为 10 指定 精度 价值。见 [.precision] format spec syntax :

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]
                                                    ^^^^^^^^^^^^

对于字符串,精度值10将把字符串截断为10个字符:

>>> '{:{}{}}'.format('123456789012345','.','10')
'1234567890'

如果你有一个对齐,那么 . 将被视为填充物:

>>> '{:{}>{}}'.format('test','.','10')
'......test'
5 年前
回复了 user2357112 supports Monica 创建的主题 » 为什么Python的sorted()方法不反转字典中具有相同值的键的顺序?

reverse=True 并不意味着对输入进行排序然后将其反转。 反向=真 means 反转 比较结果 :

reverse是一个布尔值。如果设置为True,则对列表元素进行排序,就像对每个比较进行了反转一样。

排序仍然是稳定的,因此在比较顺序上相等的元素保持它们在输入中出现的顺序。


现在,你可能会想,嘿,输入中的“c”不在“b”之前!这意味着您必须使用Python版本,其中dict不保留插入顺序,因此dict的顺序不是您在源代码中编写项的顺序。命令 sorted 它的输入本质上是任意的。如果您想要一个保持顺序的dict,就必须使用一个更新的Python或 collections.OrderedDict .