I try to handle circular import, code as follows
logs.py
from settings import setting
def _print():
if setting.is_print:
print('yes')
else:
print('no')
setttings.py
from logs import _print
class Setting:
def __init__(self):
self.is_print = True
@staticmethod
def print_exception():
return _print()
setting = Setting()
if __name__ == '__main__':
setting.print_exception()
When I execute settings.py, output as below
ImportError: cannot import name '_print'
I tried changing file settings.py
as follow
try:
from logs import _print
except ImportError:
pass
class Setting:
def __init__(self):
self.is_print = True
@staticmethod
def print_exception():
return _print()
setting = Setting()
if __name__ == '__main__':
setting.print_exception()
Output when running after changing setting.py
yes
I don't know what it happened