Python import 及项目目录架构 使用总结
2017-03-31 20:24
465 查看
假设文件结构是
/test2.py
yz/test2.py
import 文件名
仅仅是把文件名引到了python的命名空间
利用.寻找其中的值
注意这时必须在/yz文件中设置init.py(才能把文件夹识别为目录)
简要解释一下:
parent/ yz/<br> __init__.py test2.py test1.py test2.py
/test2.py
i = 2 def function(): print 123 a = 'hello' class ClassName(object): """docstring for ClassName""" def __init__(self, arg): super(ClassName, self).__init__() self.arg = arg
yz/test2.py
# -*- coding:utf8 -*- '''wer''' a = 37 def foo(): print "I'm foo" class bar: def grok(self): print "I'm bar.grok" b = bar()
import 同一文件夹下的文件
test1 引用 test2import test2 print test2.i test2.function() b = test2.bar()
from test2 import i print i
import 文件名
仅仅是把文件名引到了python的命名空间
利用.寻找其中的值
import 不同文件夹下的文件
test1 引用 yz/test2注意这时必须在/yz文件中设置init.py(才能把文件夹识别为目录)
from yz.test2 import a print a
from yz import test2 print test2.a
__init__.py的作用
偶尔可以看到有些人写的包下面还会有一个__init__.py,它的作用是在导入包时首先执行的。if __name__ == “__main__”
也有时候会看到 .if __name__ == "__main__" 语句,它的作用就是当此文件没有被作为导入的文件使用时执行 if 语句块里的程序。 假如 exp.py 中加入了 **if __name__ == "__main__"** ,然后 **python3 exp.py**,就会执行这个语句块里的内容 而 如果** if __name__ == "exp"**,时则是被 其他文件 以** "import exp"**导入时执行的部分 有如果是** if __name__ == "one.exp"**,时则是被 其他文件 以** "import one.exp"**导入时执行的部分 注意 在 "import exp"时是不会执行 if __name__ == "one.exp"中的内容的!同样: "import one.exp“是不会执行 if __name__ == "exp"中的内容的
项目目录架构
假设你的项目名为foo, 我比较建议的最方便快捷目录结构这样就足够了: Foo/ |-- bin/ | |-- foo | |-- foo/ | |-- tests/ | | |-- __init__.py | | |-- test_main.py | | | |-- __init__.py | |-- main.py | |-- docs/ | |-- conf.py | |-- abc.rst | |-- setup.py |-- requirements.txt |-- README
简要解释一下:
bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。 foo/: 存放项目的所有源代码。 (1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。 (2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py。 docs/: 存放一些文档。 setup.py: 安装、部署、打包的脚本。 requirements.txt: 存放软件依赖的外部Python包列表。 README: 项目说明文件。
相关文章推荐
- python中import或from使用及模块和包的使用总结
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 项目总结(一)------Python对文件和目录进行操作 (file对象/os/os.path/shutil 模块)
- python-remote SDK 多层目录的import,subprocess的使用就idea中环境变量
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结 收藏
- 由于Python本身自带的界面库功能并不强大,我们使用Python+wxPython作为界面开发平台,在公司新的项目中进行界面开发。开发过程使用Eclipse+PyDev 作为集成开发环境。产品发布时使用Py2exe进行打包。如今,在我的团队中,Pytho
- 大社区型网站的架构总结之如何标示用户在使用哪个功能程序篇(草稿)
- 在项目中使用Hibernate进行大数据量的性能测试,有一些总结
- [ASP中使用三层架构] 2.目录
- Flex组件的项目渲染器(ItemRenderer)使用总结
- 关于项目在linux下的虚拟目录使用
- 使用Spring+Ibatis的项目,关于如何使用事务、如何提升性能的几点总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- 对近期使用Nhibernate开发的一个项目的一些总结(一)
- Flex组件的项目渲染器(ItemRenderer)使用总结 收藏收藏
- 使用Ant进行项目构建之二:规划我们的项目目录结构 (转载)
- 使用python为Java项目开发一个预编译脚本
- asp.net c#.net项目中使用总结,遇到的各个问题的汇总
- JXL转置Excle三角矩阵项目使用总结