python导出一个目录文件中的两个

python导出一个目录文件中的两个,第1张

概述例如: Files/ main.py SubFileA/ __init__.py "from util1 import help" util1.py "def help(): print ...A..." SubFileB/ __init__.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
总结

以上是内存溢出为你收集整理的python导出一个目录文件中的两个全部内容,希望文章能够帮你解决python导出一个目录文件中的两个所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存