加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读