zoukankan      html  css  js  c++  java
  • Python模块

    note:
    一:简介
        从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。
        为此 Python 提供了一个办法,把这些定义存放在文件中,
        为一些脚本或者交互式的解释器实例使    用,这个文件被称为模块。
        模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。
        模块可以被别的程序引入,以使用该模块中的函数等功能。
        这也是使用 python 标准库的方法。
        模块中创建私有属性和方法,将不会被其他模块导入。除非添加__all__ = [变量, 值]

    二:模块的导入方法

        (1)import module

        没有把直接定义在module中的函数名称写入到当前符号表里,只是把模块的名字写到了那里
        用模块名来访问函数.
        常用函数赋一个别名:myName = module.funcName

        (2)from … import 语句
        
        不会把整个fibo模块导入到当前的命名空间。
        
        (3)from … import *

        把一个模块的所有内容全都导入到当前的命名空间也是可行的。
        (4)模块使用方法:dir()---->help()----->print(module.__doc__)
                             print(module.__file__)阅读源码

    三:模块深入学习
        
        (1)模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。
             这些代码只有在第一次被导入时才会被执行。
             每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用
        (2)模块搜索路径
            首先,Python 会在内建模块中搜寻 foobar;
            若未找到,则 Python 会在当前工作路径(当前脚本所在路径,或者执行 Python 解释器的路径)
            中搜寻 foobar;
            若仍未找到,则 Python 会在环境变量 PYTHONPATH 中指示的路径中搜寻 foobar;
            若依旧未能找到,则 Python 会在安装时指定的路径中搜寻 foobar;
            若仍旧失败,则 Python 会报错,提示找不到 foobar 这个模块

    五:__name__属性

        if __name__ == '__main__':
               print('程序自身在运行')
        else:
               print('我来自另一模块')

        dir()函数查看模块中所有的方法和属性

    六:包
        Python 允许用户把目录当成模块看待。
        这样一来,目录中的不同模块文件,就变成了「包」里面的子模块。
        包目录下还可以有子目录,这些子目录也可以是 Python 包。
        这种分层,对模块识别、管理,都是非常有好处的。
        特别地,对于一些大型 Python 工具包,内里可能有成百上千个不同功能的模块。
        若是逐个模块发布,那简直成了灾难。
        

    七:包的目录结构

        (1)要求每一个「包」目录下,都必须有一个名为 __init__.py 的文件
        __init__.py 中可以保留一些初始化的代码——比如引入依赖的其他 Python 模块。
        (2)https://liam0205.me/2017/07/23/modules-and-packages-of-python/参考文章

    八:包的调用

        同模块的调用!

    九:源码和帮助文档的使用

        dir()
        help()
        .__file__存放源码的路径

     1 # 熟悉几种导入模块的方法
     2 
     3 
     4 def func_1(func_name, *numbers):
     5     print(func_name, numbers)
     6     return 'Done'
     7 
     8 
     9 money = 200  # 模块里面的全局变量
    10 
    11 
    12 def add_money():
    13     global money
    14     money = money + 1
    15     return money



  • 相关阅读:
    vsftpd不支持目录软链接的解决办法
    SVN添加忽略目录
    Mysql 默认编码问题
    php-fpm 信号
    基于MAVEN使用IDEA创建dubbo入门项目图文教程
    taotao商城遇到的问题
    git push后出错
    Mybatis逆向工程自动生成代码(Ubuntu18.04-idea环境)
    git add.后回退 代码丢失
    对象的共享
  • 原文地址:https://www.cnblogs.com/faithyiyo/p/9719524.html
Copyright © 2011-2022 走看看