模块:".py"后缀的文件即模块
类:使用class语句封装一个类
函数:使用def语句封装一个函数
变量:使用赋值语句赋值一个变量
模块中不但可以直接存放变量,还能存放函数,还能存放类。
还可以使用自己写的模块(其实就是后缀名为.py的文件)
from ...... import...
通过这个语句可以从模块中导入指定的部分到当前的模块。
例如:
# 【文件:test.py】
def hi():
print('函数“hi”已经运行!')
# 【文件:main.py】
from test import hi # 从模块test中导入函数“hi”
hi() # 使用函数“hi”时无需加上“模块.”前缀
当我们有了一大堆py文件组成一个程序的时候,为了指明某个py文件是程序运行入口,我们可以在该文件中写出这样的代码:
# 【文件:xx.py】
代码块 (1)……
if __name__ == '__main__':
代码块 (2)……
(因为我们是为了指明该py文件就是程序入口才给这个py文件添加了的这个if name==‘main’)的方法,所以当这个py文件直接被运行时,代码块(2)才会继续执行,但当这个py文件没有被直接执行而是被其他程序导入时,代码(2)不被执行)
集体代码如下:
(1)有一个名叫story.py的程序,相关代码如下:(注意里面没有指定程序入口的函数)
sentence='从前有坐山,'
def mountion():
print('山里有座庙,')
class Temple:
sentence='庙里有个老和尚,'
def reading(self):
print('在讲一个长长的故事。')
(2)在一个名叫main.py的程序中直接调用这个story.py的模块:(注意这个mian.py的程序里有指定程序入口的函数,然后这个main.py程序直接被调用了)
import story
if __name__ == '__main__':
print(story.sentence)
story.mountain()
A = story.Temple()
print(A.sentence)
A.reading()
print()
运行结果:
里面的内容都输出了
(3)现在对刚才的story.py程序进行修改,就是末尾添加指定程序入口的函数(原本是没有的)注意:当含有指定程序入口函数的程序被别的程序调用时,指定程序入口的函数里面的语句不会被执行
story.py:
sentence = '从前有坐山,'
def mountion():
print('山里有座庙,')
class Temple:
sentence = '庙里有个老和尚,'
def reading(self):
print('在讲一个长长的故事。')
#程序入口指定函数
if __name__ == '__main__':
print(story.sentence)
story.mountain()
A = story.Temple()
print(A.sentence)
A.reading()
print()
main.py:
import story
运行结果:
可以看到运行结果啥都没有!因为调用story.py的所有语句都在这个指定函数入口的这个函数里面,当这个story.py没有直接运行,而是在别的程序里面被调用的时候,这个指定程序入口函数代码不会被执行!!就是下面这个图上的话!!
dir()函数:查看一个模块,看看里面有什么变量,函数,类,类方法等。
import random
print(dir(random))
运行结果:
比如我们看到了seed这个词,那么我们就可以百度它的用法:
当然除了模块外dir()函数也可以用来查询别的东西:
a = '' # 设置一个字符串
print('字符串:')
print(dir(a)) # 把字符串相关的函数展示出来
a = [] # 设置一个列表
print('列表:')
print(dir(a)) # 把列表相关的函数展示出来
a = {} # 设置一个字典
print('字典:')
print(dir(a)) # 把字典相关的函数展示出来