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

  • 相关阅读:
    新克隆环境无法创建供应商,报供应商名称已存在
    批处理学习:for语句详解【经典】(转)
    信号与槽引用传递
    串口封装
    tcp客户端封装
    qt无法定位程序输入点 于动态链接库 qt5core.dll
    对象new和不new的理解
    Qt重绘机制
    红绿灯
    获取所有子控件
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9383260.html
Copyright © 2011-2022 走看看