python导出一个目录文件中的两个
发布时间:2020-12-20 13:28:15 所属栏目:Python 来源:网络整理
导读:例如: Files/ main.py SubFileA/ __init__.py "from util1 import help" util1.py "def help(): print ...A..." SubFileB/ __init__.py "from util1 import help" util1.py "def help(): print ...B..." SubFileA和SubFileB中的和util1.py具有不同的内容.
例如:
Files/ main.py SubFileA/ __init__.py "from util1 import help" util1.py "def help(): print ...A..." SubFileB/ __init__.py "from util1 import help" util1.py "def help(): print ...B..." SubFileA和SubFileB中的和util1.py具有不同的内容. 我想通过某种方式用户可以指定要导入的util1.py. 我期待的是: if subFileA: from SubFileA import * else: from SubFileB import * util1.py具有相同的API,但实现方式不同. 为什么我这样做的原因,因为如果我将两个util1.py组合在一起,代码将变得丑陋且难以维护.希望有人能给我一个解决方案,或者任何建议都会很棒! 我尝试了那些代码,但是我收到了警告(它确实有效,但警告令人尴尬): main.py:4: SyntaxWarning: import * only allowed at module level def main(): main.py:4: SyntaxWarning: import * only allowed at module level def main(): 大家.我想我找到了解决方案.但我认为这不是好的编程风格. Files/ main.py "from directory import *" directory/ __init__.py "user=raw_input() if user: from directoryA import * else from directoryB import * " directoryA/ __init__.py "from util1 import help1()" util1.py directoryB/ __init__.py "from util1 import help1()" util1.py 的确,这看起来很奇怪.但它完成了这项工作. 解决方法
您需要将每个目录放入from< package>的包中. import …语法工作.要告诉Python一个目录是一个包,只需在每个目录中创建一个空的__init__.py文件.
如果您需要特定的行为,具体取决于导入的util1的版本,您可以在每个__init__.py文件中编写初始化代码. 有关更多信息,请查看official documentation on packages. 最终,您的新项目目录树应如下所示: Files/ main.py SubFileA/ __init__.py util1.py SubFileB/ __init__.py util1.py (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |