前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python day6 模块

Python day6 模块

原创
作者头像
昆兰
发布2024-07-31 14:24:03
650
发布2024-07-31 14:24:03
举报
文章被收录于专栏:廖雪峰python学习笔记

模块(Module)

Python中,一个.py文件就称之为一个模块,大大提高了代码的可维护性。当一个模块编写完毕,就可以被其他地方引用。

安装第三方模块

是通过包管理工具pip完成的(如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了,Mac或Linux上有可能并存Python 3.x和Python 2.x,因此对应的pip命令是pip3)

pip install Pillow

Anaconda一个基于Python的数据处理和科学计算平台,内置了许多非常有用的第三方库,装上Anaconda,相当于把数十个第三方模块自动安装好了,非常简单易用

模块搜索路径

试图import一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错:搜索路径存放在sys模块的path变量中

如果要添加新的目录,两种方法:

  • 直接修改sys.path,如sys.path.append('/Users/michael/my_py_scripts')
  • 第二种方法是设置环境变量PYTHONPATH

使用包(Package)来组织模块

相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突,但是也要注意,尽量不要与内置函数名字冲突

使用包则如下目录存放:init.py的文件必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包

mycompany ├─ init.py

├─ abc.py

└─ xyz.py

创建自己的模块时,要注意:

  • 模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
  • 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块

使用模块

代码语言:python
代码运行次数:0
复制
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

' a test module ' #一个字符串,表示模块的文档注释

__author__ = 'Michael Liao' #__author__变量把作者写进去

import sys

def test():
    args = sys.argv #sys模块有一个argv变量,用list存储了命令行的所有参数
    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()

当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量name置为main,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试

作用域

一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用

公开函数/变量

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

类似xxx这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的authorname就是特殊变量,hello模块定义的文档注释也可以用特殊变量doc访问,我们自己的变量一般不要用这种变量名;

非公开函数/变量:_xxx和__xxx

类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用;原则上是不被引用的但是不代表不能引用,强制掉用私有函数也是可以用的

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模块(Module)
    • 安装第三方模块
      • 模块搜索路径
        • 使用包(Package)来组织模块
        • 使用模块
        • 作用域
          • 公开函数/变量
            • 非公开函数/变量:_xxx和__xxx
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档