zoukankan      html  css  js  c++  java
  • Python学习---模版/包的概念

    1.1. 模块/包的概念

    在Python中,一个.py文件就称之为一个模块(Module)

    模块一共三种:

    python标准库

    第三方模块

    应用程序自定义模块

    模块的使用:模块是用来组织函数的

    解释器通过搜索路径找到hhh.py后, 将hhh.py解析后全部加入内存并全部赋值给hhh这个变量,后面取值需要 hhh.XXX()

    # import hhh      #解释器通过搜索路径找到hhh.p后, 将hhh.py解析后全部加入内存并全部赋值给hhh这个变量,后面取值需要 hhh.XXX()
    # from hhh import hello          # 导入hhh.hello(),可以直接使用 print(hello(str))
    # from hhh import hello as world # 导入hhh.hello()并且重新命名为world
    # from hhh import *              # 如果本地有同名函数,则会根据引用位置的不同,导致函数的结果不同

    包的使用:包是用来组织模块的,import  hhh,就是调用hhh包并且执行__init__.py

           import 包仅仅是执行了__init__.py,和其他模块并无关联

    # 包导入的一定是模块,不同的包直接通过点来导入
    # import  hhh    #  就是调用hhh这个包并且执行了__init__py这个模块,并未关联其他模块
    # from demo.hhh import test      # 从demo包下面的hhh包里面导入test模块
    # from demo.hhh.test import add  # 从demo包下面的hhh包里面导入test模块里面的add方法
    # from demo import test          # 从demo包里面导入test模块
    print(add(4,5))
    # import demo.logger             # 错误 ImportError: No module named 'demo.logger'
    # import demo.hhh.test           # 错误 ImportError: No module named 'demo.logger'

    1.2. python中的BASEDIR

    # version: python3.2.5
    # author: ‘FTL1012‘
    # time: 2017/12/12 21:28
    import os, sys
    # 相对路径&&绝对路径
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    # 添加环境变量
    sys.path.append(BASE_DIR)
    # print(BASE_DIR)
    # print(sys.path)
    from ATM.module import main                       # 在Python解释器中无法执行,无法找到ATM包
    main.main()
    
    # print(__file__)                                    # F:/Python_demountitled/ATM/bin/bin.py
    # print(os.path.abspath(__file__))                   # F:Python_demountitledATMinin.py
    # print(os.path.dirname(os.path.abspath(__file__)))  # F:Python_demountitledATMin

    1.3.__name__变量

    if __name__ == '__main__':
        pass
    # 如果在本函数内,则显示的是__main__
    # 如果是在别的函数里面调用,则显示的是模块名
    # 用于功能测试

    1.4. 目录结构

    image

    简要解释一下:
    bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
    foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py。
    docs/: 存放一些文档。
    setup.py: 安装、部署、打包的脚本。
    requirements.txt: 存放软件依赖的外部Python包列表。
         方便开发者维护软件的包依赖。将开发过程中新增的包添加进这个列表中,避免在setup.py安装依赖时漏掉软件包。
         方便读者明确项目使用了哪些Python包。
    README: 项目说明文件,功能如下:
           软件定位,软件的基本功能。
           运行代码的方法: 安装环境、启动命令等。
           简要的使用说明。
           代码目录结构说明,更详细点可以说明软件的基本原理。
           常见问题说明。

    【学习参考】 http://www.cnblogs.com/alex3714/articles/5161349.html

    【学习参考】 http://www.cnblogs.com/yuanchenqi/articles/5732581.html

    【学习参考】 http://www.cnblogs.com/alex3714/articles/5765046.html

  • 相关阅读:
    Lua中的closure、泛型for
    Lua多重继承
    (转)C++ new详解
    C++重载操作符学习
    Lua中使用继承来组装新的环境
    DOS:变量嵌套和命令嵌套
    C++中成员的私有性
    ManualResetEvent 类
    在IIS中部署和注册WCF服务
    ArcGIS Server 10 地图缓存新特性
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9383260.html
Copyright © 2011-2022 走看看