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

Python 如果值不是单值,如何使用setattr?,python,setattr,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]) 既然我想传递的值不是单一的,我该如何传递呢?基

我想使用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
。在本例中,它将返回一个可调用的
,因此您可以将其视为一个函数,如下所示:

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)

要执行的操作不是属性设置操作。为什么要使用
setattr
?单身与什么都没有关系?@user2357112我需要能够动态设置绘图类型,我正在尝试避免使用超长的if-else代码。getattr(plt,'scatter')(x,y)是我需要的答案。