如果值不是单一的,如何使用setattr?

时间:2019-05-22 02:48:07

标签: python setattr

我想使用setattr创建图:

    import numpy as np
    import matplotlib.pyplot as plt

    x = np.random.rand(10)
    y = np.random.rand(10)

    # I want this:
    # plt.scatter(x, y)
    setattr(plt, "scatter", [HOW TO PASS X AND Y])

由于我要传递的值不是单一的,我该怎么办?基本上,这应该是结果:plt.scatter(x, y)

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是getattr。在这种情况下,它将返回Callable,因此您可以将其视为函数,如下所示:

getattr(plt, 'scatter')(x, y)

与此相同:

plt.scatter(x, y)

以这种方式使用setattr会更类似于plt.scatter = (x, y),我认为这不是您要执行的操作。

答案 1 :(得分:1)

您不是在设置属性,而是调用一个属性。

getattr(plt, some_func)(x, y)

将致电

plt.some_func(x, y)

因此,您要运行

getattr(plt, 'scatter')(x, y)