如何导入 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
的包和模块 module1
和 module2
的工作示例,然后从外部 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
这是我的 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
的包和模块 module1
和 module2
的工作示例,然后从外部 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