一次又一次导入

如果我有一遍又一遍地导入模块的代码...说 时间称为函数,是否导致Python实际重新登录 它...或一旦导入模块,它会跳过它? 例如: def foo(): 进口栏 bar.printstuff() foo() foo() foo() foo() ....那个重新登录栏会4次...还是只是导入一次? 这是 大型表演打? 谢谢

# 回答1

ABCD写道: 我真的不知道,但我确实知道重新登陆的正确方法 模块是: 重新加载(bar)
# 回答2

ABCD写道: 给定一个名为bar.py的文件,其中包含以下内容: 打印"我被进口!" def printstuff(): 打印"东西" 当我导入foo.py时,我会得到此输出:( _@_) ABCDírta: 这取决于您的" bar.py"模块的大小,也取决于 程序运行时需要进行一次更改/重新加载的频率. 最好的, laszlo
# 回答3

" abcd" 写道: 我是Python的新手,所以这可能是一个奇怪的问题,但是有一个 原因是您在foo内进口栏吗? - - John Mexit:http://johnbokma.com/mexit/ 个人页面:http://johnbokma.com/ 有经验的程序员可用:http://castleamber.com/ 快乐客户:http://castleamber.com/testimonials.html
# 回答4

" John Bokma" 在消息中写道 新闻:XN *********************************************** 130.133.1.4 ...我是Python的新手,所以这可能是一个奇怪的问题,但是 有理由导入foo内部的栏吗? 两个可能的原因: 1)延迟导入直到实际需要,如果有的话. 2)将" bar"放入函数本地名称空间而不是模块全局 名称空间 Terry Jan Reedy
# 回答5

" Terry Reedy" 写道:我是Python的新手,所以这可能是一个奇怪的问题,但是有理由是您在Foo内部导入bar吗? 两个可能的原因:1)延迟导入直到实际需要(如果有的话). 2)将" bar"放入函数本地名称空间而不是模块全局名称空间 好的,很清楚,谢谢. 我猜晚了,第一个我 被忽视(Perl的工作不同,您必须自己执行延迟). - - John Mexit:http://johnbokma.com/mexit/ 个人页面:http://johnbokma.com/ 有经验的程序员可用:http://castleamber.com/ 快乐客户:http://castleamber.com/testimonials.html
# 回答6

它只有一次进口 #Magic.py文件 #!/usr/bin/python 打印"这里" 导入魔术#尝试导入自己 然后尝试 #bad_magic.py #!/usr/bin/python 打印"这里" 导入bad_magic 重新加载(bad_magic) Hth,Daniel
# 回答7

ABCD写道: 顺便说一句,解决绩效问题的第一件事 导入过程确实是在sys.modules中查看模块是否是 已经进口了. 如果是这样,则使用由 sys.modules,所以开销很小(dicts很快 通常来说,一般来说). 因此,您的代码是一种合理的防御方法 r进口栏,直到 函数称为,这就是为什么我认为您以这种方式进行编码的原因. 问候 史蒂夫 - - 史蒂夫·霍顿+44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com 爱我,爱我的博客http://holdenweb.blogspot.com 最近的漫步http://del.icio.us/steve.holden
# 回答8

Le Jeudi 08 Juin 2006 22:02,Abcd aécrit*: 多次导入模块不会多执行此模块的代码 不止一次. 我不知道您的需要 警告您,重新加载一个模块意味着您要使此代码无效,并且 用新的代替它,这不像是普通的,而是更深的导入. 还, 您必须对自己的旧代码进行处理. 嗯,以下示例应该比我的解释清楚:) N [1]:导入温度 在[2]中:A类(temp.basase 临时 在[2]中:A类(temp.basase 临时 在[2]中:A类(temp.basase 临时 在[2]中:A类(temp.basse):通过 ...: 在[3]中:重新加载(温度) out [3]:的模块'temp' 在[4]中:B级(temp.bas):通过 ...: 在[7]:b .__ base__,a .__ base__,b .__ base__是.__ base__ out [7] :( ,,false) 在[8]中:isInstance(a(),temp.base),isInstance(b(),temp.base) out [8] :( false,true) - - _____________ Maric Michaud _____________ Aristote -www.aristote.info 3 Place Des Tapis 69004里昂 电话:+33 426 880 097

标签: python

添加新评论