小编PhM*_*hML的帖子

在matplotlib中,set_xlim和set_xbound之间有什么区别?

从帮助:

set_xlim:设置xaxis的数据限制.

set_xbound:设置x轴的下限和上限.

这不是很清楚,所以让我说我画的东西:

import matplotlib.pylab as plt
fig, ax = plt.subplots(1, 1)
ax.plot(xrange(10), xrange(10))
Run Code Online (Sandbox Code Playgroud)

现在,我要么:

ax.set_xlim(2, 7)
Run Code Online (Sandbox Code Playgroud)

要么:

ax.set_xbound(2, 7)
Run Code Online (Sandbox Code Playgroud)

我没有看到差异.我可以拖动绘图,所有线都绘制在0到9之间.

python matplotlib

23
推荐指数
1
解决办法
1万
查看次数

为什么Python的函数调用语义传入关键字参数不是有序的?

使用函数定义中的双星语法,我们获得了一个常规字典.问题是它松开了用户输入顺序.有时,我们可能想知道传递给函数的关键字参数的顺序.

由于函数调用通常不涉及很多参数,我认为这不是性能问题所以我想知道为什么默认不是维持顺序.

我知道我们可以使用:

from collections import Ordereddict
def my_func(kwargs):
    print kwargs
my_func(Ordereddict(a=1, b=42))
Run Code Online (Sandbox Code Playgroud)

但它不那么简洁:

def my_func(**kwargs):
    print kwargs
my_func(a=1, b=42)
Run Code Online (Sandbox Code Playgroud)

[编辑1]:

1)我认为那里有2个案例:

  • 我需要知道顺序,用户通过文档知道这种行为.
  • 我不需要订单,所以我不在乎是否订购.

我没想到即使用户知道它使用订单,他也可以使用:

a = dict(a=1, b=42)
my_func(**a)
Run Code Online (Sandbox Code Playgroud)

因为他不知道没有下令(即使他应该知道)

2)我认为在一些论点的情况下开销不会很大,所以有一个新的可能性来管理论证的好处将优于这个缺点.

但似乎(来自Joe的答案)开销不可忽视.

[编辑2]:

似乎PEP 0468 - 在一个函数中保持**kwargs的顺序正朝这个方向发展.

python

3
推荐指数
1
解决办法
435
查看次数

标签 统计

python ×2

matplotlib ×1