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

    1.模块的作用

    模块的作用就是为了便于管理维护编写的代码,把不同的一些功能分为不同的模块来实现功能,需要时就引入这个模块。

    2.模块的引入

    1)模块的介绍

    在Python中,一个.py文件就称之为一个模块(Module),如下图所示,module_ex1.py就是一个模块,模块还有一个功能就是可以避免函数名和变量名冲突。为了避免模块名相同,这是就引入了包(Package):按目录来组织模块的方法,如图所示package_ex就是一个包,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。引入包后,模块名就要加上包名,如module_ex1.py模块名就是package_ex.module_ex1.py。

    2)模块的引入

    模块的引入需要使用关键字import来引入某个模块,比如要引用内部模块math,在编码开头用import math来引入。在调用math模块中的函数或变量时,需要加上模块名,如调用sqrt()函数:math.sqrt(1)。如果只需要调用某个模块的某个函数,就可以在开头使用这种格式引入:from 模块名 import 函数名1,函数名2....。

    如上图所示目录结构模块引入举例:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    'a test module'
    
    __author__="olive"
    
    def add(a,b):
        print('hello world')
        s=a+b
        print(s)
        return(s)
    module_ex1

    下面举例引用module_ex1模块:

    import package_ex.module_ex1 as A   #使用别名代替比较长的模块名
    A.add(1,2)
    
    #运行结果
    hello world
    3
    第一种方法引入
    from package_ex.module_ex1 import add
    
    add(1,3)
    
    #运行结果
    hello world
    4
    第二种方法引入
    from package_ex.module_ex1 import *  #引入模块所有的函数
    add(1,3)
    
    #运行结果
    hello world
    4
    第三种方法引入

    3.模块的别名和作用域

    1)别名

    使用关键字as来定义别名,格式如:import 原模块名 as 别名

    别名的使用,可以使本来一个繁琐的模块名变得简单,还有一个用处可以在导入模块时根据当前环境选择最合适的模块,如Python标准库一般会提供StringIOcStringIO两个库,这两个库的接口和功能是一样的,但是cStringIO是C写的,速度更快,所以,你会经常看到这样的写法:

    try:
        import cStringIO as StringIO
    except ImportError:    # 导入失败会捕获到ImportError
        import StringIO

    这样就可以优先选择c环境的,如果不提供这个环境的,就会自动选择其他环境的,后面编程引入StringIO就行了。

    2)作用域

    作用域就是设定一些权限,有些函数和有些变量我们不想给别人使用,就可以加个权限,如:非公开的(private)

    在Python中,是通过_前缀来实现的。

    正常的函数和变量名是公开的(public),可以被直接引用,比如:abc、olive等;

    类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如__author____name__就是特殊变量,我们自己的变量一般不要用这种变量名;

    类似_xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc__abc等;

    之所以我们说,private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。

    参考博文:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868200196665403ac40fac14536939dd5af20810782000

    注:参考上面博文,根据自己理解整理一份,有些是直接把作者简介拷贝过来的。

  • 相关阅读:
    用任务计划管理计划任务对付任务计划-禁止WPS提示升级
    破解激活Win10无风险?激活后删除激活工具无影响===http://www.pconline.com.cn/win10/693/6932077_all.html#content_page_4
    VS2013 密钥 – 所有版本
    2017面试题1
    模拟锚点
    输入框被软键盘遮
    资源(GitHub)
    全国城市部分js
    subline3 插件
    app下载——js设备判断
  • 原文地址:https://www.cnblogs.com/olivexiao/p/7066458.html
Copyright © 2011-2022 走看看