0

所以我想定义一个类A
看起来像:

a.py

class A:
   def __init__(self):
       pass

   def some_method_in_a(self):
       pass

现在我想在b.py. 好像:

continue define class A:
def some_method_in_b_but_bellows_classA(self):
    pass

那么有什么简单的方法可以做到这一点吗?

4

2 回答 2

2

我相信您通常会使用继承来完成此操作。

您定义通用类,您的“A”类从中继承属性或方法。就像是:

/b.py:

class generalObjectLikeA:
    def some_method_in_b_but_bellows_classA(self):
        pass

/a.py:

class A(b.generalObjectLikeA):
    def __init__(self):
        pass

    def some_method_in_a(self):
        pass
于 2013-10-16T15:56:48.757 回答
1

如果你因为某些原因不想使用继承(比如猴子补丁),函数和类是python中的普通对象,你可以动态地改变它们。

class A(object):
    pass

a = A()

def bar(self):
    print id(self)

A.foo = bar
a.foo()
b = A()
b.foo()

参考:

猴子补丁

Monkeypatching 人类

于 2013-10-16T16:08:05.443 回答