python里使用reload函数

本文和大家分享的主要是python 中reload 函数的使用相关内容,一起来看看吧,希望对大家 学习python 有所帮助。

reload 函数是使用模块名称,而不是变量名称,也就是说当你把它改变了名称,它也是加载原来的名称。

当使用reload 时,这个模块会被重新编译,新的模块替换原来的模块。如果之前从这个模块创建的实例仍然使用旧的模块实现。特别是使用 from-import 语句加载的名称,也不会被更新。

例如:

# File: builtin-reload-example-1.py from imp  import reload

import hello reload(hello) reload(hello)

输出如下:

=== RESTART: D:/work/csdn/python_Game1/example/builtin-reload-example-1.py ===

hello again, and welcome to the show

hello again, and welcome to the show

hello again, and welcome to the show

>>>

这里helo.py 代码如下:

print(’hello again,  and welcome  to the show’)

1.  如果模块在语法上是正确的,但在初始化过程中失败,则导入过程不能正确地将模块的名字绑定到符号表中。这时,必须在模块能被重新加载之前使用 import() 函数加载该模块。

2.  重新加载的模块不删除最初旧版本模块在符号表中的登记项。

3.  如果一模块利用 from 。。。 import 。。。方式从另一模块导入对象, reload ()函数不重新定义导入的对象,可利用 import 。。。形式避免这个问题。

4.  提供类的重新加载模块不影响所提供类的任何已存实例 --- 已存实例将继续使用原来的方法定义,只有该类的新实例使用新格式。这个原则对派生类同样适用。

来源: 大坡3D 软件开发

时间: 2024-11-05 16:38:23

python里使用reload函数的相关文章

Python中的reload函数

Python中的import语句可以导入module文件,但是import语句只是第一次导入的时候会执行module文件中的代码,然后就会把导入的模块文件存入到内存,当再次导入的时候,Python是直接从内存里面取出module文件,而不会执行module文件的内容了,而reload函数强制Python重新导入并执行module文件. 假设有module文件a.py: def changer(): print("First Version") 然后在可交互的控制台执行如下代码: >

python列表里__setslices__方法函数解析a

先看看列表里的__setslice__方法函数的帮助文档 help(list.__setslice__) 帮助文档如下所示: __setslice__(...) x.__setslice__(i, j, y) <==> x[i:j]=y Use of negative indices is not supported. 从帮助文档可以看出这个方法函数可以通过列表切片的方式来使用(运算映射函数).举例说明一下: In [1]: li = range(1, 11) In [2]: li Out[2

python里的拆包、引用、递归与匿名函数

拆包:*A拆元组,**B拆字典. 引用:在C.C++里面里面a=1,b=a,实际上相当于硬链接,相当于两份a.b各有一个1,多占一个空间,而在python里就是软连接,只有一份,通过id(a)来查看id都一样, 在python里定义的东西如一直没引用,那么就会成为垃圾,不用担心,python有自己的机制去除垃圾. 不可变类型:数字.字符串.元组. 可变类型:列表.字典,它们都不能做字典的key. 递归:一个函数里调用了这个函数自己,递归完成阶乘,3的阶乘=3*(2的阶乘) 递归时一定要想到何时要

Python之reload函数

reload()函数将以前导入过的模块再加载一次.重新加载(reload)包括最初导入模块时应用的分析过程和初始化过程.这样就允许在不退出解释器的情况下重新加载已更改的Python模块. 若干注意事项:1. 如果模块在语法上是正确的,但在初始化过程中失败,则导入过程不能正确地将模块的名字绑定到符号表中.这时,必须在模块能被重新加载之前使用import()函数加载该模块.2. 重新加载的模块不删除最初旧版本模块在符号表中的登记项.3. 如果一模块利用from...import...方式从另一模块导

Python 多进程实战 & 回调函数理解与实战

这篇博文主要讲下笔者在工作中Python多进程的实战运用和回调函数的理解和运用. 多进程实战 实战一.批量文件下载 从一个文件中按行读取 url ,根据 url 下载文件到指定位置,用多进程实现. #!/usr/local/python27/bin/python2.7 from multiprocessing import Process,Pool import os,time,random,sys import urllib # 文件下载函数 def filedown(url,file):  

python: 怎样写一个函数把名字大写并变成下面这样——字典与三引号

例题:python: 怎样写一个函数把名字大写并变成下面这样? 字典+列表:将每个字母以列表形式存在字典里,分六次打印输出: dic = { } dic['C']=[ ' CCCC ', ' C C', 'C ', 'C ', ' C C', ' CCCC ' ] dic['A']=[ ' A ', ' A A ', ' A A ', ' AAAAAAA ', ' A A ', 'A A' ] dic['T']=[ 'TTTTTTT', ' T ', ' T ', ' T ', ' T ', '

《python源码剖析》笔记 python虚拟机中的函数机制

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.Python虚拟机在执行函数调用时会动态地创建新的 PyFrameObject对象, 这些PyFrameObject对象之间会形成PyFrameObject对象链,模拟x86平台上运行时栈 2.PyFuctionObject对象 typedef struct { PyObject_HEAD PyObject *func_code: //对应函数编译后的PyCodeObject对象 Py

#python#子类调用父类函数的方法

Python中的子类中的__init__()函数会覆盖父类的函数,一些情况往往需要在子类里调用父类函数. 如下例程里,???处是需要调用父类函数的地方,接下来结合例程具体介绍. 1 1 # -*- coding:utf-8 -*- 2 2 class Student: 3 3 def __init__(self,name): 4 4 self.name=name 5 5 def ps(self): 6 6 print('I am %s'%self.name) 7 7 8 8 class Scor

python中常用的函数与库一

1, collections.deque 在python里如果我们用列表作为队列使用也是可以的,只是当从队尾删除或者增加元素的时候是很快的,但是从队首删除或者增加元素则要慢得多,这是因为在队首进行操作其他的元素都要逐一改变. collections.deque就是为队列设计的,它能迅速得删除或者增加元素,无论是队首还是队尾 >>> from collections import deque >>> queue = deque(["Eric", &qu