Python学习笔记08_模块

本文介绍了Python中的模块和包的概念,包括如何创建和使用模块,以及如何避免模块名冲突。同时,文章还提供了示例代码并讲解了如何利用Python解释器进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块

  • 在Python中,一个.py文件就成为一个模块(Module)。
  • 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。
  • 每一个包目录下面都会有一个__init__.py的文件,这个文件时必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以说空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应的目录名称。

使用模块

  • hello.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()
    
  • 第1行和第2行数标准注释。
  • 第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码。
  • 第4行数一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释。
  • 第6行使用__author__变量把作者写进去。
  • sys.argv,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称。
  • 当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。

作用域

  • 正常的函数和变量名是公开的(public)。
  • __xxx__是特殊变量,可以被直接饮用,有特殊用途。如_author_, __name__, __doc__
  • _xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用。

安装第三方模块

  • pip、pip3。
  • pip install xxx
  • 模块搜索路径
    <<< import sys
    <<< sys.path
    <<< sys.path.append('/Users/padluo')
    
  • 添加自己的搜索目录,一声直接修改sys.path,添加要搜索的目录,这种方法是运行时修改,运行结束后失效。第二种是设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中,只需要添加自己的搜索路径,Python自己本身的搜索路径不受影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值