如何为未实例化的对象实例化一个类函数?

时间:2013-08-14 12:08:12

标签: python function instance

有没有人知道是否有办法在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',而不是检查每个可以使用的循环。

2 个答案:

答案 0 :(得分:0)

一个人没有“实例化”一个功能;一个实例化对象,作为类的实例。

现在,只需调用类klass上的方法,即可调用类klass.method(foo)的类方法。

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

答案 1 :(得分:0)

ab的类型为numpy.ndarray。您已导入ndarray,因此您只需在ndarray.mina上致电b

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

此处,ndarray.min(x)相当于x.min()

修改获取numpy.ndarray.min,但不明确了解rand的来电类型:

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

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