Python模块

本文介绍了Python中的模块概念,包括内置模块和第三方模块,强调了模块在避免命名冲突和组织代码中的作用。模块搜索路径和包的使用,特别是包的目录结构和__init__.py文件的作用。此外,讲解了如何通过pip安装第三方模块。最后,讨论了Python的作用域规则,明确了public和private变量的区分,并提示了良好的编程习惯。
摘要由CSDN通过智能技术生成

模块

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

模块包括:Python内置的模块来自第三方的模块

避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,但是,不管是哪个模块都应当注意不要和Python内置函数名冲突。

Python内置函数列表:

Built-in Functions
abs()delattr()hash()memoryview()set()
all()dict()help()min()setattr()
any()dir()hex()next()slice()
ascii()divmod()id()object()sorted()
bin()enumerate()input()oct()staticmethod()
bool()eval()int()open()str()
breakpoint()exec()isinstance()ord()sum()
bytearray()filter()issubclass()pow()super()
bytes()float()iter()print()tuple()
callable()format()len()property()type()
chr()frozenset()list()range()vars()
classmethod()getattr()locals()repr()zip()
compile()globals()map()reversed()__import__()
complex()hasattr()max()round()

为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)

可以将相同的模块名放在不同的包内,这样只要包名不冲突,就不会冲突。

包的特点是,每个包目录下都有一个__init__.py文件,这个文件可以是空文件,也可以有代码。

同时,包里也可以有包,进行嵌套。

mycompany
 ├─ web
 │  ├─ __init__.py
 │  ├─ utils.py
 │  └─ www.py
 ├─ __init__.py
 ├─ abc.py
 └─ utils.py

自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。

例如:hello.py文件

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

' a test module'

__author__ = 'zcc'

import sys # 导入sys之后,相当于系统里有一个变量指向sys模块


def test():
    args = sys.argv 
# sys里有个叫argv的list型变量,事实上存储着所有命令行的参数,第一个参数永远是调用sys的.py文件的名字。
    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行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;

# 第4行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释;

# 第6行使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

注:当运行某.py文件时,该文件为main文件。Python解释器会把一个叫__name__的特殊变量命名为__main__,而从其他地方导入时,本.py文件的__name__不会发生变化。

作用域

在一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的(类似于java的前缀)

  • __xx__这样的变量是特殊变量,用来定义作者名或者模块名。
  • 没有前缀的变量就是public
  • 有_或者__前缀的变量是private,最好通过模块内部引用

其实,Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。

安装第三方模块

通过包管理工具pip实现。

可以通过Anaconda一次性装多个包。这是一个基于Python的数据处理和科学计算平台,它已经内置了许多非常有用的第三方库。

模块搜索路径

默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值