Python:定义类外的函数

时间:2017-10-23 09:02:21

标签: python python-3.x class

我正在尝试在我想要使用的类之外​​定义一组函数。然而,我想让这些函数作为类中的方法可用。 简单的例子:

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)

非常感谢任何帮助。

0 个答案:

没有答案