如何导入 class 名称 python

How to import class name python

这是我的 python 文件夹结构(它没有任何 python 包):

 folder/
    script1.py
    script2.py

script1 有:

class myclass(object):
    def __init__():
        print("in init")

    def showReport():
        print("in report only function")

script2 有:

from . import myclass

当我 运行 python -m folder.script2

我得到/usr/bin/python: cannot import name myclass

如何导入这个 class 以便我可以在 script2 上调用这个 class 的函数?

你说你确实有一个包,但你仍然必须引用包含你的 class myclass 模块 script1,所以:

from .script1 import myclass

P.S。在 Python 中,class 名称习惯使用驼峰式大小写,因此 MyClass 而不是 myclass

例子

使用名为 package 的包和模块 module1module2 的工作示例,然后从外部 package,我调用 python -m package.module2:

➜  ~  tree package

├── __init__.py
├── module1.py
└── module2.py

➜  ~  cat package/module1.py 

class MyClass(object):
    def work(self):
        print 'Working!'

➜  ~  cat package/module2.py 

from .module1 import MyClass

if __name__ == '__main__':
    worker = MyClass()
    worker.work()

➜  ~  python -m package.module2  

Working!

试试 from script1 import myclass