问题描述
有3个单独的脚本:
script1.py:
post_script = """
gd = document.getElementById('{plot_id}');
gd.on('plotly_click',function(data) {
var pn='',tn='',isNodeClick=false;
for (var i=0; i < data.points.length; i++){
pn = data.points[i].pointNumber;
tn = data.points[i].curveNumber;
if(data.points[i].fullData.mode === 'markers') {
isNodeClick = true;
}
};
if (!isNodeClick) return;
var visible = gd.calcdata[pn][0].trace.visible;
const update = {'visible': visible === true ? 'legendonly': true}
Plotly.restyle(gd,update,[pn]);
return false;
});
"""
script2.py:
from .cool_local_pkg import AwsmClass
class MyCoolClass:
def __init__(self,**kwargs):
....# some amazing code here
最后,script3.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)
我得到了错误
import script2
awsm_args = {'awsm_var':'awsm_val'}
best_class_ever = script2.MyCoolClass2(**awsm_args)
所以我必须在本地(在类中)导入包,这不是一个好主意。
我在UnboundLocalError: local variable 'AwsmClass' referenced before assignment
中运行了self.__dir__()
和dir()
,它们都不包含MyCoolClass
,但是他们称它没有问题。同样在AwsmClass
之前的MyCoolClass2
中调用它也不是问题。那么什么(在哪里)发生了什么?我知道它与本地包有关(非本地包不会发生),但是为什么要在这种情况下专门使用呢?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)