python: 两个具有相同名称的模块和类位于不同的包下
python: 两个具有相同名称的模块和类位于不同的包下
我开始学习Python并编写一个练习应用程序。目录结构如下:
src | --ShutterDeck | --Helper | --User.py -> class User --Controller | --User.py -> class User
src
目录位于PYTHONPATH
中。在另一个文件中,比如main.py
,我想要访问两个User
类。我该如何做呢?
我尝试使用以下方法,但是失败了:
import cherrypy from ShutterDeck.Controller import User from ShutterDeck.Helper import User class Root: @cherrypy.expose def index(self): return 'Hello World' u1=User.User() u2=User.User()
这肯定是有歧义的。我能想到的另一种方式(类似于C++的方式)是:
import cherrypy from ShutterDeck import Controller from ShutterDeck import Helper class Root: @cherrypy.expose def index(self): return 'Hello World' u1=Controller.User.User() u2=Helper.User.User()
但是当运行上述脚本时,会出现以下错误:
u1=Controller.User.User() AttributeError: 'module' object has no attribute 'User'
我无法弄清楚为什么会出现错误?目录ShutterDeck
、Helper
和Controller
中都有__init__.py
文件。