У меня есть 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
).
Возможно ли такое?