我正在尝试在我想要使用的类之外定义一组函数。然而,我想让这些函数作为类中的方法可用。 简单的例子:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import pylab
def my_plot(self):
plt.clf()
fig, ax = plt.subplots()
ax.plot(self.timeline, self.sample, color = self.color)
plt.show()
class test(object):
def __init__(self, color = 'black'):
self.sample = np.random.normal(0, 1, 100)
self.timeline = np.arange(1,101,1)
self.color = color
self.plot = my_plot
现在我打电话的时候,
my_test = test()
my_test.plot()
我收到错误:
my_plot() missing 1 required positional argument: 'self'
然而,
my_test.plot(my_test)
产生预期结果。
根据我的理解,my_test.plot()
相当于plot(my_test)
所以我不明白为什么我应该在这里写my_test.plot(my_test)
。
非常感谢任何帮助。