python 模块 导入机制 模块搜索 Python包 发布python模块或程序

python 模块

python模块:以.py结尾的代码文件。
       顶层文件: 程序执行入口
       模块文件1
       模块文件2
       模块文件3

在这里插入图片描述

在python中一切皆对象,所以模块本身也是对象。由于模块本身是对象所以模块自己本身也有属性,也有方法。那么在一个模块的顶层 定义的所有变量成为了被导入模块的属性。
在这里插入图片描述
当程序执行时,位于模块中的顶层语句都会执行, def 语句
def f1():
print()

模块的执行环境:

在这里插入图片描述
[注:]一个模块不应该有太多函数和类之外的代码,因为这部分代码就属于顶层代码,在程序刚开始执行时就会被执行,然后调用的时候又会被执行一遍,会增加程序消耗,减慢执行速率。

导入模块

在这里插入图片描述
在这里插入图片描述

import 工作机制

在这里插入图片描述
”上图中模块只在第一导入时候才会执行以上图中3步骤(1.找到模块文件2.编译成字节码3.执行模块的代码创建其所定义的对象),后续的导入操作只不过是提取内存中已加载的模块对象。“

模块搜索

在这里插入图片描述
在这里插入图片描述
random. __ dict __ 的结果如下:

{’__ name ': ‘random’, ’ doc __’: ‘Random variable generators.\n\n integers\n --------\n
uniform within range\n\n sequences\n ---------\n pick random element\n
pick random sample\n pick weighted random sample\n generate random permutation
\n\n distributions on the real line:\n ------------------------------\n uniform\n
triangular\n normal (Gaussian)\n lognormal\n negative exponent
ial\n gamma\n beta\n pareto\n Weibull\n\n distributions o
n the circle (angles 0 to 2pi)\n ---------------------------------------------\n circul
ar uniform\n von Mises\n\nGeneral notes on the underlying Mersenne Twister core generator:
\n\n* The period is 2**19937-1.\n* It is one of the most extensively tested generators in existence.
\n* The random() method is implemented in C, executes in a single Python step,\n and is, therefore,
threadsafe.\n\n’, ‘package’: ‘’, ‘loader’: <_frozen_importlib_external.SourceFileLoader obj
ect at 0x0000000002F8FAC8>, ‘spec’: ModuleSpec(name=‘random’, loader=<_frozen_importlib_external
.SourceFileLoader object at 0x0000000002F8FAC8>, origin=‘H:\ANACONDA\lib\random.py’), ‘file’:
‘H:\ANACONDA\lib\random.py’, ‘cached’: ‘H:\ANACONDA\lib\pycache\random.cpython-36.py
c’, ‘builtins’: {‘name’: ‘builtins’, ‘doc’: “Built-in functions, exceptions, and other o
bjects.\n\nNoteworthy: None is the nil' object; Ellipsis represents…’ in slices.”, ‘package
‘: ‘’, ‘loader’: <class ‘_frozen_importlib.BuiltinImporter’>, ‘spec’: ModuleSpec(name=‘built
ins’, loader=<class ‘_frozen_importlib.BuiltinImporter’>), ‘build_class’: , ‘import’: , ‘abs’: , ‘all’:
, ‘any’: , ‘ascii’: , ‘bin’:
, ‘callable’: , ‘chr’: , ’
compile’: , ‘delattr’: , ‘dir’: , ‘divmod’: , ‘eval’: , ‘exec’: , ‘format’: , ‘getattr’: , ‘glob
als’: , ‘hasattr’: , ‘hash’: , ‘hex’: , ‘id’: , ‘input’: , ‘isinstance’: , ‘issubclass’: , ’
iter’: , ‘len’: , ‘locals’: <built-in function locals

, ‘max’: , ‘min’: , ‘next’: ,
‘oct’: , ‘ord’: , ‘pow’: , ‘pr
int’: , ‘repr’: , ‘round’: <built-in function round
, ‘setattr’: , ‘sorted’: , ‘sum’: , ‘vars’: , ‘None’: None, ‘Ellipsis’: Ellipsis, ‘NotImplemented’:
NotImplemented, ‘False’: False, ‘True’: True, ‘bool’: <class ‘bool’>, ‘memoryview’: <class ‘memoryv
iew’>, ‘bytearray’: <class ‘bytearray’>, ‘bytes’: <class ‘bytes’>, ‘classmethod’: <class ‘classmetho
d’>, ‘complex’: <class ‘complex’>, ‘dict’: <class ‘dict’>, ‘enumerate’: <class ‘enumerate’>, 'filter
': <class ‘filter’>, ‘float’: <class ‘float’>, ‘frozenset’: <class ‘frozenset’>, ‘property’: <class
‘property’>, ‘int’: <class ‘int’>, ‘list’: <class ‘list’>, ‘map’: <class ‘map’>, ‘object’: <class ‘o
bject’>, ‘range’: <class ‘range’>, ‘reversed’: <class ‘reversed’>, ‘set’: <class ‘set’>, ‘slice’: <c
lass ‘slice’>, ‘staticmethod’: <class ‘staticmethod’>, ‘str’: <class ‘str’>, ‘super’: <class ‘super’
, ‘tuple’: <class ‘tuple’>, ‘type’: <class ‘type’>, ‘zip’: <class ‘zip’>, ‘debug’: True, ‘BaseE
xception’: <class ‘BaseException’>, ‘Exception’: <class ‘Exception’>, ‘TypeError’: <class 'TypeError
'>, ‘StopAsyncIteration’: <class ‘StopAsyncIteration’>, ‘StopIteration’: <class ‘StopIteration’>, ‘G
eneratorExit’: <class ‘GeneratorExit’>, ‘SystemExit’: <class ‘SystemExit’>, ‘KeyboardInterrupt’: <cl
ass ‘KeyboardInterrupt’>, ‘ImportError’: <class ‘ImportError’>, ‘ModuleNotFoundError’: <class ‘Modul
eNotFoundError’>, ‘OSError’: <class ‘OSError’>, ‘EnvironmentError’: <class ‘OSError’>, ‘IOError’: <c
lass ‘OSError’>, ‘WindowsError’: <class ‘OSError’>, ‘EOFError’: <class ‘EOFError’>, ‘RuntimeError’:
<class ‘RuntimeError’>, ‘RecursionError’: <class ‘RecursionError’>, ‘N

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值