python学习-模块

2022/2/13 17:18:15

本文主要是介绍python学习-模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

模块

简介

为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

好处

  • 大大提高了代码的可维护性。
  • 其次,编写代码不必从零开始。
  • 使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中, 建议不要与内置函数冲突
  • 按目录来组织模块的方法,称为包; 避免不同人编写同名模块
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变量命名规范,不要使用中文、特殊字符;
模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。

作用域

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

  1. 正常的函数和变量名是公开的(public),可以被直接引用,比如:abc,x123,PI等;
  2. xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__authorname,__doc__就是特殊变量,我们自己的变量一般不要用这种变量名;
  3. _xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等
def _private_1(name):
    return 'Hello, %s' % name

def _private_2(name):
    return 'Hi, %s' % name

# 提供给外部的public, 否则private
def greeting(name):
    if len(name) > 3:
        return _private_1(name)
    else:
        return _private_2(name)
    
print(greeting("zhangsan"))

安装第三方模块

安装第三方模块,是通过包管理工具pip完成的。

Mac或Linux: 省略安装pip工具
Win: 安装python时, 确保安装时勾选了pip和Add python.exe to Path。
验证: cmd/shell, 执行pip/pip3
安装的第三方模块都应该注册到pypi.python.org
pip install Pillow

常用模块

常用Pillow,以及MySQL驱动程序,Web框架Flask,科学计算Numpy, 使用pip安装费时费力
推荐Anaconda, 批量安装

模块搜索路径

当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错:

import mymodule
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named mymodule
  • 默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中:

     import sys
     sys.path
    

    新增搜索目录的方式:

    1. 直接修改sys.path,添加要搜索的目录:sys.path.append(’/Users/michael/my_py_scripts’); 运行时修改,运行结束后失效。
    2. 设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。


这篇关于python学习-模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程