2016-11-18 42 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 
相關問題