Python多个类调用特定类时出错

时间:2017-03-31 10:51:47

标签: python python-3.x class python-import

我是新手,拿起Python(3.4)并尝试上课。

我创建了一个模块BootstrapYieldCurve,里面有两个类(BootstrapYieldCurve和ForwardRates)。

当我导入模块时,我可以调用和操作BootstrapYieldCurve类,但是调用ForwardRates类时出错。

有人能够建议代码是错误的,还是我在Python Shell中调用类的方式?

>>> from BootstrapYieldCurve import ForwardRates
>>> Traceback (most recent call last):
  File "<pyshell#36>", line 1, in <module>
    from BootstrapYieldCurve import ForwardRates
ImportError: cannot import name 'ForwardRates'

这是我的模块代码结构

import math

class BootstrapYieldCurve():
    def __init__(self):
    def add_instrument(..........):
    ..........
class ForwardRates():
    def .........

1 个答案:

答案 0 :(得分:1)

您无法从另一个类导入一个类,如下所示:

from BootstrapYieldCurve import ForwardRates

因为ForwardRates未封装在BootstrapYieldCurve内(此外,Python中没有这样的概念)。请参阅encapsulation

您可以从variables, functions, and classes(通常包含变量,函数和类的python文件)导入module

您可以执行以下操作:

from module_file import BootstrapYieldCurve 

from module_file import ForwardRates

您可以参考此basic tutorial on importing modules

另外,尽量不要将moduleclass命名为same name,因为这可能会造成混淆。这样做并不是一个好习惯,因为模块名称与其他所有名称共享相同的名称空间。