Псевдопеременная this
всегда указывает на текущий объект в методе экземпляра. Просто передайте this
в качестве аргумента, в котором вы хотите, чтобы ссылка переходила.
Это может быть более простым решением для вашего второго вопроса:
# lib.py
class A():
def work(self):
print('working')
class B():
def __init__(self):
self.a = A()
def run(self):
self.a.work()
Затем в вашем коде:
import lib
class A(lib.A):
def work(self):
print('hardly working')
lib.A = A
b = lib.B()
b.run()
Или:
import lib
class AA(lib.A):
def work(self):
print('hardly working')
class BB(lib.B):
def __init__(self):
self.a = AA()
b = lib.B()
b.run()
b = BB()
b.run()