0

有谁知道是否有办法为 Python 中尚未实例化的对象实例化一个类的函数?我想要这样的东西:

class C():
    def __init__(self, var):
        self.var = var
    def f1(self):
        self.var += 1
    def f2(self):
        self.var += 2

cond = True
if cond : f = C.f1
else:     f = C.f2

for i in xrange(1e7):
    a = C(1)
    for j in xrange(1e3):
        a.f()

目标是能够在开始时将 'f' 用作 nparrays 的 'min'、'max' 或 'mean',而不是在每个循环中检查要使用的函数。

4

2 回答 2

0

一个不“实例化”一个函数;一个实例化对象,作为类的实例。

现在,只需klass通过调用类上的方法来调用类的类方法:klass.method(foo).

如果rand.min是一个可以在 上调用的函数a,那么只需执行rand.min(a)or f(a)

于 2013-08-14T12:30:57.520 回答
0

a和的类型bnumpy.ndarray。你已经导入了,所以你可以简单地ndarray调用and :ndarray.minab

f = ndarray.min
print f(a), f(b) 

这里,ndarray.min(x)等价于x.min()

编辑numpy.ndarray.min没有明确知道调用类型的情况下rand

f = type(rand(int())).min

请注意,您仍然需要知道此类型具有min功能。

于 2013-08-14T12:35:34.263 回答