是否可以通过参数创建方法

时间:2016-11-18 03:29:47

标签: python class python-3.x object

说我有两个功能

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 个答案:

答案 0 :(得分: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