У меня есть 2 класса:
class A(object):
def __init__(self, klass):
self.klass = klass
def foo(self, *args, **kwargs):
pass
def bar(self, *args, **kwargs):
pass
class B(object):
pass
a = A(B)
B.a = a
b = B()
A:
B.a.foo()
b.a.bar()
foo мог работать только в случае, если он вызывается из самого класса B, а метод bar - только в случае, если он вызывается из экземпляра класса B. При этом, класс B не должен ничего знать о классе A (на самом деле, поле a устанавливается в другом месте через setattr).
Возможно ли такое?

