我是新手,拿起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 .........
答案 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。
另外,尽量不要将module
和class
命名为same name
,因为这可能会造成混淆。这样做并不是一个好习惯,因为模块名称与其他所有名称共享相同的名称空间。