Inheritance Python中的异常行为';s超类局部作用域

Inheritance Python中的异常行为';s超类局部作用域,inheritance,scope,python-3.5,superclass,python-class,Inheritance,Scope,Python 3.5,Superclass,Python Class,有3个单独的脚本: 脚本1.py: from .cool_local_pkg import AwsmClass class MyCoolClass: def __init__(self, **kwargs): ....# some amazing code here 脚本2.py: from .cool_local_pkg import AwsmClass from .script1 import MyCoolClass class MyCoolClass2(

有3个单独的脚本:

脚本1.py:

from .cool_local_pkg import AwsmClass

class MyCoolClass:
      def __init__(self, **kwargs):
         ....# some amazing code here
脚本2.py:

from .cool_local_pkg import AwsmClass
from .script1 import MyCoolClass

class MyCoolClass2(MyCoolClass):
      def __init__(self, **kwargs):
         some_cool_var = kwargs['awsm_var']
         some_cool_inst = AwsmClass(some_cool_var)
最后,使用script3.py:

import script2
awsm_args = {'awsm_var':'awsm_val'}
best_class_ever = script2.MyCoolClass2(**awsm_args)
我得到了错误

UnboundLocalError: local variable 'AwsmClass' referenced before assignment
所以我必须在本地(类内)导入包,我想这不是一个好主意

我在
mycolclass
中运行了
self.\uuuuu dir\uuuu()
dir()
,它们都不包含
AwsmClass
,但它们调用它时没有问题。在
\uuuu init\uuuuu
之前在
mycolclass2
中调用它也不是问题。那么什么(以及在哪里)发生了故障?我知道这与它是一个本地包(非本地包不会发生)这一事实有关,但为什么在这种情况下特别如此呢