模块
通过函数能够在程序中实现代码的重用,那么当需要在程序中重用其他程序内的代码,应该怎么办?
我们可以通过模块来调用,通过在程序中引用模块,就可以使用其中的函数和变量,这也是使用Python标准库的方法。
在模块中,模块的名称(作为字符串)可用作全局变量值name。
1. import语句
Python中要引入模块,使用import语句,格式如下:
import <模块名>
注意:
如果是直接引入模块,在使用模块中函数或属性(常量、变量)时一定要指出函数或属性的所属模块,格式为:<模块名>.<函数或属性>,否则会出错。
示例:
>>> import random
>>>
>>> num = random.randint(1, 100) #使用random模块中的randint()函数
>>> print(num)
7
2. form…import语句
如果只想引入模块中的某个函数或属性或类,使用from…import语句,格式如下:
from <模块名> import <函数名或变量名>
示例:
>>> from random import randint
>>>
>>> num = randint(1, 100)
>>> print(num)
95
在使用from…import语句从模块中引入函数时,为避免冲突和便于理解,可以使用as语句给引入的函数换个名字,如下
from <模块名> import <函数名或变量名> as <自定义名>
示例:
>>> from random import randint as ra
>>>
>>> num = ra(1, 100)
>>> print(num)
30
3. 自定义的模块
每个Python文件,只要它保存在本地的文件系统中,就是一个模块。
引入自定义的模块,需要模块文件位于Python环境变量路径下或与当前运行程序在同一路径下。
示例:
自定义模块,命名为 say365.py
say_hello.py 中引入自定义模块(两个文件在同一个目录)
4. dir()函数
dir()函数是python内置的函数,用来列出模块中的函数、类和属性。
如果给dir()函数提供一个模块名称,它返回该模块中的名称列表,如果不提供,则返回当前模块的名称列表。
示例:
>>> import random
>>>
>>> dir(random) ['__name__', 'getrandbits', 'seed', 'randrange', 'randint', 'choice', 'random', 'uniform']
>>> print( dir() )
['myfile', 'print_x', 'a', 'gc', 'print_abc', 'num', 'sys', 'bdev', 'randint', '__name__', 'os', 'x', 'random', 'print_max', 'ra', 'uos']
dir()函数没有列出内置函数和变量的名字,这些函数和变量定义在builtins模块中,通过它你可以看到具体的内容。
示例:
>>> import builtins
>>> dir(builtins) ['__name__', '__build_class__', '__import__', '__repl_print__', 'bool', 'bytes', 'bytearray', 'co']