模块
模块
- 文件是物理上组织代码的方式
- 模块是逻辑上组织代码的方式
- 一个以.py结尾的文件就是一个模块文件。将.py扩展名移除,剩余的文件名就是模块名
#vim star.py
hi = 'hello world'
def pster(n=30):
print('*' * n)
#vim mytest.py
import star
print(star.hi) #打印star模块的hi变量
stat.pster() #调用star模块中的pster函数
导入模块的方法
#常用方法
>>> import getpass #单行导入一个模块
>>> from random import choice,randint #仅导入模块的部分功能
>>> choice('abcd')
'b'
>>> randint(1,100)
18
#不常用的方法
>>> import time,os #单行导入多个模块
>>> import getpass as gp #导入模块时,为其起别名gp
>>>gp.getpass()
Password:
''
- import是导入模块,导入模块时,模块中的代码会执行,这个过程叫load加载
- 不管import多少次模块,只会以第一次为准,也就是第一次导入时执行的模块
>>> import this
The Zen of Python, by Tim Peters #打印python之禅
>>> import this #不在打印
_name_属性
- 我们希望有些代码是在指定条件下运行的
- 当模块文件直接运行,执行特定代码
- 当模块被其他文件导入时,不执行哪些特定代码
- 每个模块都有一个名为_name_的属性,可以理解为它是一个变量。
它的值在不同的情况下不一样,但是只有两个可能。 - 如果模块文件直接运行,它的值是_main_
- 如果模块文件被其他文件导入,它的值是模块名
- 因此只判断_name_的值,就可以知道模块文件在以何种方式在运行
案列:生成随机密码
创建randpass.py脚本,要求如下
1、编写一个能生称8位随机密码的程序
2.使用random的choice函数随机取出字符
3.改进程序,用户可以自己决定生成多少位的密码

浙公网安备 33010602011771号