为一个方法分配一个未使用的返回值,该方法既设置又返回一个值?

时间:2015-08-31 10:28:06

标签: python matplotlib

matplotlib中的几个方法都返回一个值,并设置一个对象的属性。例如,.yaxis.set_major_locator()都会更改绘图的y轴,并返回y轴。

在一段代码中,我有以下声明:

axes.yaxis.set_major_locator(DayLocator())

axes我为其分配了一个子图的变量。

由于我使用axes但没有使用y轴本身,因此未分配axes.yaxis.set_major_locator(DayLocator())的返回值。

这对我来说似乎完全没问题,但是pylint当然抱怨这个。

两个问题:

  1. 我可以安全地忽略此警告,还是应该分配它?
  2. 更一般地说,setter_method的好处是什么,它还返回None以外的值?

1 个答案:

答案 0 :(得分:2)

简短回答:在这种情况下,请忽略此警告或配置pylint以忽略它。

它的价值ax.yaxis.set_major_locator(...)按惯例返回None

但是,除了修改轴之外,还有其他一些情况,例如ax.set_ylim(...)会返回新限制。

至于ax.set_ylim之类的东西将返回设定值的原因,对于matplotlib,只有在函数可能不符合您传入的值的情况下才会这样做。

例如,如果您设置y限制,则取决于aspectadjustable的值,可能无法遵守这些确切的限制。因此,set_ylim会返回实际设置的限制。