Python中文
首页
教程
问答
标签
搜索
登录
注册
关于python继承的一些问题,imp
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我对python不熟悉,但对java很在行。现在我在python3.5上训练时遇到了一个恼人的问题,我有这样一个src结构:</p> <pre><code>/project-root --main.py --ModelImpl.py #subclass of BaseModel --ActionImpl.py #subclass of BaseAction --/base ----BaseModel.py #base class of all ----BaseAction.py #subclass of BaseModel ----modulescript.py </code></pre> <p>在主.py地址:</p> <pre><code>from ModelImpl import ModelImpl from ActionImpl import ActionImpl modelImpl = ModelImpl() actionImpl = ActionImpl() </code></pre> <p>在模块脚本.py地址:</p> <pre><code>from BaseAction import BaseAction baseAction = BaseAction() </code></pre> <p>在基本模型.py地址:</p> <pre><code>class BaseModel: def __init__(self): print("BaseModel") </code></pre> <p>在基本操作.py地址:</p> <pre><code>from .BaseModel import BaseModel class BaseAction(BaseModel): def __init__(self): super().__init__() print("BaseAction") </code></pre> <p>在模型实现.py地址:</p> <pre><code>from base.BaseModel import BaseModel class ModelImpl(BaseModel): def __init__(self): super().__init__() print("ModelImpl") </code></pre> <p>在操作impl.py地址:</p> <pre><code>from base.BaseAction import BaseAction class ActionImpl(BaseAction): def __init__(self): super().__init__() print("ActionImpl") </code></pre> <p>现在当我输入python3主.py在终端,我得到了打印结果:</p> <pre><code>BaseModel ModelImpl BaseModel BaseAction ActionImpl </code></pre> <p>但如果我输入python3模块函数.py,出现错误:</p> <blockquote> <p>Traceback (most recent call last):</p> <p>File "modulescript.py", line 1, in (module) from BaseAction import BaseAction </p> <p>File "/home/jerry/projects/test/python/base/BaseAction.py", line 1, in (module) from .BaseModel import BaseModel SystemError: Parent module '' not loaded, cannot perform relative import</p> </blockquote> <p>我发现这是因为基本操作.py地址:</p> <pre><code>from .BaseModel import BaseModel </code></pre> <p>如果我改为<code>from BaseModel import BaseModel</code>,则模块脚本.py运行正常,但是主.py将出现错误:</p> <blockquote> <p>File "main.py", line 225, in (module) from ActionImpl import ActionImpl</p> <p>File "/home/jerry/projects/test/python/ActionImpl.py", line 1, in (module) from base.BaseAction import BaseAction</p> <p>File "/home/jerry/projects/test/python/base/BaseAction.py", line 1, in (module) from BaseModel import BaseModel</p> <p>ImportError: No module named 'BaseModel'</p> </blockquote> <p>哎呀。烦人的! 在java中,如果提供了类的正确路径(如<code>import com.domain.MyClass;</code>),则可以从任何位置导入任何类</p> <p>那么,用python导入的正确方法是什么?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我得到了同样的错误,但错误得到了纠正,当我改变</p> <pre><code>from .BaseModel import BaseModel </code></pre> <p>至</p> <pre><code>from base.BaseModel import BaseModel </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
pyVISA GPIB GET(组执行触发器)
8 回答
Pyvisa IOerror设备:Korad K3005d电源
7 回答
PyVISA mac OS X(山狮)安捷伦33250
1 回答
Pyvisa Pyusb无法加载大于1 MB的序列
5 回答
pyVisa RS232太慢
6 回答
PyVISA RS232超时错误(安捷伦电源)
7 回答
PyVISA SCPI命令和查询(值更新问题)
3 回答
PyVISA SerialInstrument需要硬重置才能在故障后连接
3 回答
pyvisa,未找到函数viOpen
3 回答
pyVISA:以编程方式将仪器返回到本地模式
9 回答
pyvisa:接口类型是什么意思?
4 回答
pyvisa.errors.VisaIOError:VI_ERROR_TMO(1073807339):操作完成前超时
4 回答
PyVisa“更复杂的示例”根本不运行Keithley 2400不理解的命令
6 回答
PyVisapy后端
1 回答
PyVISA不能写入超过7F的十六进制字符
5 回答
PYVISA中的ENUM模块和cStringIO模块
6 回答
PyVisa代码的图形用户界面
7 回答
Pyvisa使用按键电源超时
1 回答
PyVISA和Kethley 2701只能从一个通道获取结果
4 回答
PyVisa和Printing New D
5 回答