I have a base class A in base.py:
import module1
class A:
  def test(self):
     module1.sample("test")
Then in new.py I created a new class B which inherits A and override test method:
from base import A
class B(A):
    def test(self):
        module1.sample("test")
        print("Testing...")
The problem is that the module1 is no longer available in new.py. Is there any options that I do not need to import module1 again in new.py?
Advertisement
Answer
One not recommended way to achieve what you want is to use __builtins__. Add the following line to base.py.
__builtins__['module1'] = module1
Then module1 is no longer undefined from new.py. It is definitely defined in __builtins__.
Again, it is not recommended, however, good to understand how Python works. You would better import module1 from new.py as well.
import module1 from base import A ...
