• python-16:模块 包


    Python 模块

    模块定义

        随着程序越来越庞大,需要分隔成几个文件;也需要能在不同文件中复用函数、类和变量,而不是拷贝代码。为了满足这些需要,Python提供了模块。

        简单来说,模块就是一个保存了Python代码的文件(.py 文件)文件名 就是 模块名 (modulename)加上  .py 后缀。

        模块能定义函数,类和变量。模块里也能包含可执行的代码。模块的模块名(作为一个字符串)可以由全局变量 __name __ 得到。

                 函数名,模块名都可看着变量名。

    导入模块

        1、import modulename1 [, modulename2[,... modulenameN]  可通过 import 语句导入一个或多个模块,模块导入命令通常放在脚本顶端。

                 2、from packegename import modulename1[, name2[, ... nameN]]  从模块中导入一个或多个指定的部分到当前命名空间中

                 3、from packegename import *   导入模块中的所有定义(除了以下划线_命名的),这种声明不该被过多地使用。

                 注:import modulename,实质:1、执行modulename.py文件(实质,将此文件代码全部导入);2、引入变量名(modulename,模块名就是变量名),故有,modulename.function()

                 注:pagegename,实质是一个文件夹,但包含了一个__init__.py文件,

                注:执行文件和引用文件,一般bin.py是一个程序入口文件,bin.py中的import modulename,modulename.py就是一个引用文件

     

    定位模块

        当你导入一个模块,Python解析器对模块位置的搜索顺序是: 通过 import sys  sys.path查看,

          1. 当前目录,(指的是执行文件的当前目录,即执行的那个文件的目录)

          2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录

          3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/

        模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

                 

     运行本质 

     
    #1 import test

    #2 from test import add 

    无论1还是2,首先通过sys.path找到test.py,然后执行test脚本(全部执行),区别是1会将test这个变量名加载到名字空间,而2只会将add这个变量名加载进来。  

    import只能导入模块,不能导入模块中的对象(类、函数、变量等)。如一个模块A(A.py)中有个函数getName,另一个模块不能通过import A.getName将getName导入到本模块,只能用import A。如果想只导入特定的类、函数、变量则用from A import getName即可。

    调用包实质就是执行包下的__init__.py文件,包之间的引用,用点操作,如:from web.web1.web2 import test

         

    if __name__=='__main__':有两层意思:1、在模块中用,是为了模块的测试;2、在主程序(bin.py)中用,是为了防止被其它用户调用自己的主程序

  • 相关阅读:
    zabbix实现原理及架构详解
    用Python玩转微信(一)
    你真的用好了Python的random模块吗?
    Authentication of Django
    Django admin 权威指南(一)
    常用查找数据结构及算法(Python实现)
    基于python的七种经典排序算法
    Django 1.10 中文文档------3.2.2 查询操作making queries
    “全能”选手—Django 1.10文档中文版Part4
    Django 1.10 中文文档------3.2.1 模型Models
  • 原文地址:https://www.cnblogs.com/Zhouzg-2018/p/9822856.html
Copyright © 2020-2023  润新知