python:模块
1.模块的导入方式
'''模块
模块里能定义函数、类和变量:也可以包含可执行的代码
'''
#方式一
import math
print(math.sqrt(9))
#方式二
from math import sqrt
print(sqrt(9))
#方式三
from math import *
print(sqrt(9))
运行结果:
3.0
3.0
3.0
2.模块起别名
'''模块
定义别名
'''
import math as m
print(m.sqrt(25))
from math import sqrt as s
print(s(9))
运行结果:
5.0
3.0
3.模块的调用顺序
1.自己的文件名不要和模块名重复
'''
1.当前目录
2.PYTHONPATH变量下的每个目录
3.默认路径:比如:unix下
/user/local/lib/bin/python/
模块搜索路径存储在system模块下的sys.path中
变量包含以上三个路径
注意:1.自己的文件名不要和模块名重复
2.当from 模块 import 功能时,如果功能名称重复时,
调用的是后定义的模块
'''
import random
num = random.randint(1,10)
print(num)
运行结果:
Traceback (most recent call last):
File "D:/pycharm项目/数值类型.py", line 13, in <module>
num = random.randint(1,10)
AttributeError: module 'random' has no attribute 'randint'
原因:自己在当前目录下建立了一个与random重名的文件,调用时按顺序调用。
2.当from 模块 import 功能时,如果功能名称重复时,调用的是后定义的模块或导入的功能。
from time import sleep
def sleep():
print("这是后定义的sleep功能")
sleep(3)
def sleep():
print("这是后定义的sleep功能")
from time import sleep
sleep(3)
运行结果:
sleep(3)
TypeError: sleep() takes 0 positional arguments but 1 was given
进程已结束,退出代码0
原因:即在导入模块功能后又定义了一个同名的函数,从而导致在执行时调用后定义的函数功能。第二次把定义的函数功能放在前面后导入模块功能,程序正常运行。
3.命名重复的严重性
#命名重复的严重性
import time
print(time)
time=10
print(time)
#pyhhon 数据是通过引用调用进行传递的
运行结果:
<module 'time' (built-in)>
10
原因:pyhhon 数据是通过引用调用进行传递的。