python随笔系列--import执行过程简单论证

结论:模块在一个python解释器(一次生命周期)中,一个模块只被引入一次
验证过程

ins01 site-packages]# echo ‘print(11111)‘ > kai.py
ins01 site-packages]# echo -e ‘import kai\nprint(2222)‘ >  yun.py

ins01 ~]# python3
>>> import yun
1111111
22222
>>> import kai  #这里没有执行kai里面的打印语句,因为在yun.py里已经执行过了import kai
>>> import yun  #同样这里也不会有任何输出
>>>

同时,import 一个模块时,模块中的代码会从头至尾执行,只不过用from xxx import yyy时,未被指定的命名不会呗带入到当前namespase中,如下图实验

原文地址:https://blog.51cto.com/kaifly/2365624

时间: 2024-10-09 15:23:52

python随笔系列--import执行过程简单论证的相关文章

Elasticsearch系列---搜索执行过程及scroll游标查询

概要 本篇主要介绍一下分布式环境中搜索的两阶段执行过程. 两阶段搜索过程 回顾我们之前的CRUD操作,因为只对单个文档进行处理,文档的唯一性很容易确定,并且很容易知道是此文档在哪个node,哪个shard中. 但搜索比CRUD复杂,符合搜索条件的文档,可能散落在各个node.各个shard中,我们需要找到匹配的文档,并且把从各个node,各个shard返回的结果进行汇总.排序,组成一个最终的结果排序列表,才算完成一个搜索过程.我们将按两阶段的方式对这个过程进行讲解. 查询阶段 假定我们的ES集群

代码分析系列 内存执行过程

1.内存执行过程:(六:01:32:08-->) package primary; public class Main {    public static void main(String args[]){        Main m= new Main();        int day = 15;        Birthday b1 = new Birthday(27,11,1988);        Birthday b2 = new Birthday(23,04,2013);    

python通过cx_oracle操作数据库过程简单记录

1.环境配置 环境配置过程中,需要关注软件版本是否一致,主要包括:oracle客户端版本.cx_oracle版本.python版本: 2.操作记录 (1)验证环境是否正常:(无报错即为正常) import cx_Oracle (2)创建数据库连接,方式大致三种: db1=cx_Oracle.connect('user/password@host/orcl') db2=cx_Oracle.connect('user','password','host/orcl') tnsname=cx_Oracl

python随笔系列--global和nonlocal关键字

global 函数外部定义的变量(即global范围),在函数内部可以引用,但是不能修改. 如果函数中要使用一个外层(这里是global)的变量,若函数内部使用global标记该变量,那么在函数内尽可以"读取"该变量:若要在函数内修改该global变量,则需要用global语句,函数对该变量的修改也会体现到global作用域. >>> oo=123 >>> def kai(): print(oo) oo = pp+1 print(oo) >&g

Python 内部执行过程

一.编译过程概述 当我们执行Python代码的时候,在Python解释器用四个过程“拆解”我们的代码,最终被CPU执行返回给用户. 首先当用户键入代码交给Python处理的时候会先进行词法分析,例如用户键入关键字或者当输入关键字有误时,都会被词法分析所触发,不正确的代码将不会被执行. 下一步Python会进行语法分析,例如当"for i in test:"中,test后面的冒号如果被写为其他符号,代码依旧不会被执行. 下面进入最关键的过程,在执行Python前,Python会生成.py

说说Python程序的执行过程

1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊! 为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清.   2. 解释型语言和编译型语言   计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个

PHP内核解密系列:zend_execute的执行过程

PHP内核解密系列:zend_execute的执行过程 解释器引擎最终执行op的函数是zend_execute,实际上zend_execute是一个函数指针,在引擎初始化的时候zend_execute默认指向了execute,这个execute定义在{PHPSRC}/Zend/zend_vm_execute.h: ZEND_API void execute(zend_op_array *op_array TSRMLS_DC) { zend_execute_data *execute_data;

python之from 和import执行过程分析

原文链接:http://blog.csdn.net/lis_12/article/details/52883729 问题1 同一个目录下,有两个Python文件,A.py,B.py #A.py from B import D class C(object): pass #B.py from A import C class D(object): pass ''' 执行A.py 结果: Traceback (most recent call last): File "A.py", lin

python函数得执行过程

对于 Python 常规函数,都只有一个入口,但会有多个出口如 return 返回或者抛出异常.函数从入口进入会一直运行到 return 语句或者抛出异常,中间不会暂停,函数一直拥有控制权.当运行结束,才将控制权还给调用者. 前文介绍过,当执行 Python 代码时,会先将代码编译成字节码,然后在虚拟机中解释执行字节码,编译好的字节码会保存在 .pyc 或 .pyd 扩展名的文件里.在运行时,虚拟机会创建字节码执行的上下文环境,Python 模拟 C 语言中的运行栈作为运行时的环境,使用PyFr