如果值不是单一的,如何使用 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)
我想使用 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)