zoukankan      html  css  js  c++  java
  • 第五章-模块

    在Python中一个py文件就可以被称为模块(Module)

    由于写的模块越来越多, 模块名重复的几率越来越大, Python又引入了按目录来组织文件的方法, 也就是包(Package)

    引入了包之后, 模块的名称就变成了 包名.模块名 

    Package的目录结构中, 每个目录下要存放一个__init__.py的文件, 否则该目录就会被当成普通目录. __init__.py本身就是一个模块, 模块名就是目录名

    1 使用模块

    1.1 模块其实是一个py文件

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    ' a test module '
    
    __author__ = 'Michael Liao'
    
    import sys
    
    def test():
        args = sys.argv
        if len(args)==1:
            print('Hello, world!')
        elif len(args)==2:
            print('Hello, %s!' % args[1])
        else:
            print('Too many arguments!')
    
    if __name__=='__main__':
        test()
    

      第一行和第二行是标准的python注释

      第四行是一个字符创, 表示模块的文档注释, 任意模块代码的第一个字符串都被视为模块的文档注释, 此内容可以通过__doc__来访问

      第六行的__author__是作者信息

      这就是标准的模板的结构

      第八行表示导入sys模块, 导入之后就可以使用变量sys. sys模块里面有一个参数是argv, 它获取到了命令行的输入, 返回list类型, 第一个元素是文件名, 后面是写入的参数

      第十九行的__name__只有在运行该函数的时候才会赋值为__main__

    1.2 导入模块

      导入模块有两种方法

      方法一:

    import 模块名字

        这样的导入方法以后使用函数需要

          模块名字.函数名字

      方法二:

    from 模块名字 inport 函数名字

        这样就直接导入了某个函数, 使用的时候直接使用函数名就可以了

    1.3 导入自己写的模块

      由于模块就是一个py文件, 可以自定义一个文件自己来导入

      其中import的时候会执行一遍模块文件

      如下的test.py

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    __author__ = 'weihuchao'
    
    def getMax(mList):
        print("getMax")
        return max(mList)
    
    print("hello test")
    

      如下是导入test模块的代码

    import test
    maxValue = test.getMax([24,3,26,9,33])
    print(maxValue)
    

      结果为

    hello test
    getMax
    33

    2 私有变量

      之前遇见过得__author__等是特殊的变量, 与此类似的还有_变量名的变量, 这种变量表示私有变量, 只能在模块内部使用.

      尽管在Python中没有可以限制不使用私有变量或者私有函数, 但是在编程中尽量不要乱调用别的私有变量和函数

      进一步的编程习惯是:

        在模块中, 不公开的函数和变量全部使用私有变量, 用公开的函数来调用私有的成员.

    def _private_1(name):
        return 'Hello, %s' % name
    
    def _private_2(name):
        return 'Hi, %s' % name
    
    def greeting(name):
        if len(name) > 3:
            return _private_1(name)
        else:
            return _private_2(name)
    

    3 安装第三方模块

      在Python中安装第三方的模块是通过包管理工具pip来完成的

      安装图片处理工具Python Imaging Library

    pip install Pillow
    

      生成缩略图

    >>> from PIL import Image
    >>> im = Image.open('test.png')
    >>> print(im.format, im.size, im.mode)
    PNG (400, 300) RGB
    >>> im.thumbnail((200, 100))
    >>> im.save('thumb.jpg', 'JPEG')
    

      其余还有MYSQL的驱动 mysql-connector-python, 用于科学计算的NumPy库 numpy, 用于生成文本的模板工具Jinja2

    4 模块搜索路径

      使用import导入模块的查找的顺序如下:

        当前目录-->所有已安装的内置模块-->第三方模块

      搜索路径在sys的path里

    >>> import sys
    >>> sys.path
    

      更改搜索目录的方法有两种

        第一种: 直接修改sys.path

    >>> import sys
    >>> sys.path.append('/Users/michael/my_py_scripts')
    

        第二种: 修改环境变量PYTHONPATN

     

    人若有恒 无所不成
  • 相关阅读:
    ASP.NET安全问题-- 创建安全的Web应用程序
    浅谈ASP.NET内部机制(八)
    ASP.NET 配置文件纵横谈(一)
    项目开发-让设计模式成为一种心智
    浅谈ASP.NET内部机制(七)
    ASP.NET 配置文件纵横谈(二)
    GridView的分页是否真的是鸡肋呢?
    SQL开发中容易忽视的一些小地方(四)
    SQL开发中容易忽视的一些小地方( 三)
    怎样才能充分利用SQL索引
  • 原文地址:https://www.cnblogs.com/weihuchao/p/6636355.html
Copyright © 2011-2022 走看看