美文网首页
廖雪峰 | 6.0 使用模块和安装第三方模块

廖雪峰 | 6.0 使用模块和安装第三方模块

作者: 苦哈哈的柠檬水 | 来源:发表于2022-04-20 21:54 被阅读0次

1,在Python中,一个.py文件就称之为一个模块(Module)
2,模块使用优势:
(1)提高了代码的可维护性
(2)编写代码不必从零开始,可以被其他地方引用
(3)可以避免函数名和变量名冲突,相同名字的函数和变量完全可以分别存在不同的模块中。但是也要注意,尽量不要与内置函数名字冲突。点这里查看Python的所有内置函数。
3,包(Package)
Python引入了按目录来组织模块的方法,可以避免模块名冲突。

image.png
文件www.py本身是一个模块,其模块名就是mycompany.web.www,两个文件utils.py的模块名分别是mycompany.utilsmycompany.web.utilsmycompany.web也是一个模块
  • 创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。
  • 查看系统是否已存在该模块的方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。

使用模块

1,以内建的sys模块为例,编写一个hello_1的模块:

#!/usr/bin/env python3  #使得本文件可以直接在Unix/Linux/Mac上运行
# -*- coding: utf-8 -*-   #表示.py文件本身使用标准UTF-8编码

' a test module '   #表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释

__author__ = 'Michael Liao'   #使用__author__变量标注作者

import sys   #导入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函数
    test()

(1)sys模块的argv变量,用list存储命令行的所有参数。sys.argv是获取运行Python文件的时候命令行参数。
(2)argv至少有一个元素,因为第一个参数永远是该.py文件的名称,例如:

#文件a.py内容见下
import sys
a=sys.argv
b=len(sys.argv)
print(a)
print(b)
#运行程序
C:\Users\Alexia Lee>cd python_study
C:\Users\Alexia Lee\python_study>python a.py
['a.py']
1

C:\Users\Alexia Lee\python_study>python a.py Alexia
['a.py', 'Alexia']
2

(3)判断模块运行模式

if __name__=='__main__':
test()

  • main代表模块的名称(带.py后缀),此处为hello_1.py
  • 命令行运行hello.py
C:\Users\Alexia Lee\python_study>python hello_1.py  #符合if条件,运行test函数
Hello, world!
C:\Users\Alexia Lee\python_study>python hello_1.py Alexia 
Hello, Alexia!
  • 启动Python交互环境,导入hello模块
C:\Users\Alexia Lee\python_study>python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import hello_1  #跳过if判断,忽略后面的执行命令
>>> hello_1.test()
Hello, world!

2,作用域
(1)定义:作用域:程序创建、访问、改变一个变量时,都是在一个保存该变量的空间内进行,这个空间为命名空间,即作用域。
(2)通过_前缀来表示该函数或变量是在模块内部使用

  • 正常的函数和变量名是公开的(public),可以被直接引用,比如:abcx123PI等;
  • 类似__xxx__这样的变量是特殊变量,是非公开的(private)的,可以被直接引用,但是有特殊用途,如__author__作为文档注释等
  • private函数或变量的作用,如:
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)

在模块里公开greeting()函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting()函数不用关心内部的private函数细节,这也是一种非常有用的代码封装和抽象的方法,即:外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public

安装第三方模块

1,pip安装与使用
(1)在Python中,安装第三方模块,是通过包管理工具pip完成的
(2)在命令提示符窗口下尝试运行pip,如果Windows提示未找到命令,下载https://bootstrap.pypa.io/get-pip.py,然后直接运行 python get-pip.py即可
(3)安装第三方库Pillow的命令是:

pip install Pillow

2,安装常用模块:推荐直接使用Anaconda
(1)官网下载:https://www.anaconda.com/products/distribution
(2)按流程安装,下图全选

image.png

(3)cmd打开运行命令框,activate base激活环境,进入Python

C:\Users\Alexia Lee>activate base

(base) C:\Users\Alexia Lee>python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

3,模块搜索路径
(1)加载模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错
(2)默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中:

>>> import sys
>>> sys.path

(3)添加搜索目录

  • 方法一:暂时设置——直接修改sys.path,添加要搜索的目录:
>>> import sys
>>> sys.path.append('/Users/michael/my_py_scripts')

相关文章

  • 廖雪峰 | 6.0 使用模块和安装第三方模块

    1,在Python中,一个.py文件就称之为一个模块(Module)2,模块使用优势:(1)提高了代码的可维护性(...

  • 常用第三方模块

    来自廖雪峰 除了内建的模块外,Python还有大量的第三方模块。 基本上,所有的第三方模块都会在PyPI - th...

  • Python - Day8

    廖雪峰:Python教程 一.模块 ①在Python中,一个.py文件就称之为一个模块(Module) ②使用模块...

  • 模块-2.使用模块

    转自廖雪峰老师官方网站 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。 我们以...

  • 模块和包

    模块和包 一、模块的分类 1,第三方模块 工具安装 源码安装 2,自定义模块 3,内置模块 模块除了 第三方模块,...

  • Apache模块

    DSO模块加载模块提供了灵活性。 模块的类型: 核心模块 标准模块 第三方模块 使用apxs编译安装模块 首先查看...

  • 【融职教育】Web前端学习 第5章 node基础教程3 npm常

    一、npm安装第三方模块 npm有两种方式安装第三方模块:本地安装和全局安装,使用哪种安装方式,取决于我们用npm...

  • Python开发环境使用:Pip第三方模块管理组件

    一、pip模块管理器的使用 Q:由于Python有几乎无限的第三方模块库,那我们如何安装和管理这些第三方模块呢? ...

  • 初识模块

    模块=库 分为标准库(不需要安装,直接可以用) 和第三方库 (需要安装在site-Packages) 使用模块还可...

  • 第三方模块“requests”的基本介绍

    Requests模块是第三方模块,需要预先安装。Request支持HTTP连接保持和连接池,支持使用cookie保...

网友评论

      本文标题:廖雪峰 | 6.0 使用模块和安装第三方模块

      本文链接:https://www.haomeiwen.com/subject/xjhvertx.html