有没有人知道是否有办法在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',而不是检查每个可以使用的循环。
答案 0 :(得分:0)
一个人没有“实例化”一个功能;一个实例化对象,作为类的实例。
现在,只需调用类klass
上的方法,即可调用类klass.method(foo)
的类方法。
如果rand.min
是一个可以在a
上调用的函数,则只需执行rand.min(a)
或f(a)
。
答案 1 :(得分:0)
a
和b
的类型为numpy.ndarray
。您已导入ndarray
,因此您只需在ndarray.min
和a
上致电b
:
f = ndarray.min
print f(a), f(b)
此处,ndarray.min(x)
相当于x.min()
。
修改获取numpy.ndarray.min
,但不明确了解rand
的来电类型:
f = type(rand(int())).min
请注意,您仍需要知道此类型具有min
功能。