2016-11-18 43 views
1

说创建一个方法,我有两个功能是否有可能通过一个参数

def do1(x, y): 
    return x + y 

def do2(x, y): 
    return x - y 

我可以创建这样

class foo(object): 
    def __init__(self, func): 
     self.func = func 

abc = foo(func=do1) 
abc.func(1, 1) # return 2 
abc = foo(func=do2) 
abc.func(1, 1) # return 0 

一类是有可能对我做出abc.func是一个方法而不是一个属性?

谢谢。

+1

你的问题是不完全清楚,但也许http://stackoverflow.com/a/30294947是你在追求什么? –

+0

Go Google“Python实例方法”。 –

+0

'abc.func'是方法,而不是属性,因为你可以把它叫做'abc.func()' – furas

回答

0

您可以添加一个方法,一类像这样:

def do(self, x, y): 
    return x+y 

class Foo(object0: 
    def __init(self): 
    pass 

Foo.bar = do 

a = Foo() 
a.bar(1,2) 
out> 3 

或者以一个实例:

def do2(x,y): 
    return x + y 

a = Foo() 
a.bar2 = do2 
a.bar2(3,4) 
out> 7 
相关问题