无论是否面向对象,您都可以使用相同的数值算法。我不太明白你的问题。OO更多的是关于程序结构和数据之间的连接。方法中的数字可以与普通程序程序中的数字相同。 - 编辑 -
当你向量化它的方法时,你可以很快地制作你的抛物线数组。您当然可以对更复杂的向量进行矢量化。
import numpy as np
class parabola:
a = 0.0
b = 0.0
c = 0.0
def __init__(self,a,b,c):
self.a = a
self.b = b
self.c = c
def set_a(self, new_a):
self.a = new_a
def set_b(self, new_b):
self.b = new_b
def set_c(self, new_c):
self.c = new_c
def get_a(self):
return self.a
def get_b(self):
return self.b
def get_c(self):
return self.c
vpara = np.vectorize(parabola)
vgeta = np.vectorize(parabola.get_a)
vgetb = np.vectorize(parabola.get_b)
vgetc = np.vectorize(parabola.get_c)
a = np.zeros(10000)
b = np.zeros(10000)
c = np.zeros(10000)
a[:] = [i for i in xrange(10000)]
b[:] = [2*i for i in xrange(10000)]
c[:] = [i*i for i in xrange(10000)]
objs = np.empty((10000), dtype=object)
objs[:] = vpara(a,b,c)
print vgeta(objs[1:10:2]),vgetc(objs[9900:9820:-3])