我正在使用一个定义类的模块,如下所示:
class PyTimeCode(object):
<methods, etc.>
在python解释器中,我执行以下操作:
import pytimecode
mytc = PyTimeCode(6)
以上操作不起作用(生成NameError
)。
以下作品:
import pytimecode
mytc = pytimecode.PyTimeCode(6)
为什么?
答案 0 :(得分:3)
import
语句的工作原理。来自documentation:
第一种形式的import语句将本地名称空间中的模块名称绑定到模块对象,然后继续导入下一个标识符(如果有)。如果模块名称后跟as,则后面的名称将用作模块的本地名称。
如果您想使用模块内容而不使用前缀,请使用from
表单:
from表单不绑定模块名称:它遍历标识符列表,在步骤(1)中找到的模块中查找每个标识符,并将本地名称空间中的名称绑定到找到的对象
关于您的代码的示例:
from pytimecode import PyTimeCode
mytc = PyTimeCode(6)
或(一般不推荐):
from pytimecode import *
mytc = PyTimeCode(6)