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

How to use setattr if value is not single?

我想使用 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)

我想你要找的是getattr。在这种情况下,它将 return 一个 Callable,因此您可以将其视为一个函数,如下所示:

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

与此相同:

plt.scatter(x, y)

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

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

getattr(plt, some_func)(x, y)

会打电话给

plt.some_func(x, y)

所以,在你的情况下,你想要 运行

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