模块(.py文件)
-
三大元素:全局变量、函数、类
-
判断程序的入口
# entry.py
def main():
pass
print(__name__)
if __name__ == "__main__":
main()
# import
# 在导入模块的时候,会把被导入模块中的代码全部执行一遍
# main的调用问题
# 自测时(__name__==“__main__”),执行。当被import时,被导入模块中的__name__等于自生模块名,所以不执行
# 如果被其他模块导入使用main函数不应该被执行(__name__==__entry__(模块名))
as 可以给全局变量名、类名、模块名取别名
all
- 被导入的模块中的__all__是配合导入模块from yang import *使用,只能存在在__all__中的字符串对应的全局变量、函数名、类名才能被from yang import *
__all__= ['', ''] # ‘’中可以是变量名、类名、函数名
例子:
# slave.py
__all__ = ['avg', "name", "Person"]
name = '制作模块'
def avg(first, *rest):
print('__name__ of slave is {}'.format(__name__))
return (first + sum(rest)) / (1 + len(rest))
class Person(object):
pass
def main():
print(name)
print(avg(1, 2, 3, 4))
print(Person)
if __name__ == "__main__":
main()
# master.py
from slave import *
print(avg(1, 2, 3, 4))
print(Person)
print(name)
try:
main()
except Exception as e:
print("catch except {}".format(e))
执行master.py
name of slave is slave
2.5
<class ‘slave.Person’>
制作模块
catch except name ‘main’ is not defined
python中的包和文件不同之处
包有__init__.py文件
配合包中的__init__.py使用从包中导入
from 包名 import *
在__init__.py中使用__all__=[‘模块名1’, ‘模块名2’,]
** 包里面不能再出现包,不然导入的时候会找不到,python项目文件深度最好不超过两层**
电脑一般使用的单位是像素,比如程序中做图,壁纸…
封装过程: 变量-》函数-》类-》模块-》包
查看python的模块和函数帮助文档方法
命令行help()
命令行能使用的东西,模块中都能使用
help()
Welcome to Python 3.6’s help utility!
help> modules
Please wait a moment while I gather a list of all available modules…
模块帮助查询
查看.py结尾的普通模块help(module_name)
>>> import math
>>> help(math)
Help on built-in module math:
NAME
math
DESCRIPTION
This module is always available. It provides access to the
mathematical functions defined by the C standard.
FUNCTIONS
acos(...)
acos(x)
Return the arc cosine (measured in radians) of x.
# q 退出
查看内建模块sys.bultin_modulenames
>>> import sys
>>> sys.builtin_module_names
('_ast', '_bisect', '_codecs', '_codecs_cn', '_codecs_hk', ... 'zlib')
需要导入sys模块。这里列举的一般是自带的使用C/C++编译链接的模块
查询函数信息
查看模块下所有函数dir(module_name)
>>> dir(math)
['__doc__', '__loader__', '__name__',...]
>>>
查看模块下特定函数信息help(module_name.func_name)
如查看math下的sin()函数
>>> help(math.sin)
Help on built-in function sin in module math:
sin(...)
sin(x)
Return the sine of x (measured in radians).
查看函数信息的另一种方法print(func_name.doc)
>>> print(print.__doc__)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
__doc__前后是两个短下划线,在python中会合并为长下划线
python中的help()类似unix中的man指令,熟悉后会对我们的编程带来很大帮助