python函数 模块先加载到内存后执行_python动态加载变量方法

本文探讨了Python中如何动态加载变量,特别是在模块被加载到内存后,如何通过函数来实现变量值的动态更新。通过示例展示了不使用函数和使用函数两种情况下的区别,强调了使用函数来确保获取到变量的最新值。
摘要由CSDN通过智能技术生成

python动态加载变量方法

发布于 2014-10-13 16:57:23 | 94 次阅读 | 评论: 0 | 来源: 网友投递

Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

本文为大家讲解了python动态加载变量的方法,需要的朋友可以参考下

众所周知,程序在启动后,各个程序文件都会被加载到内存中,这样如果程序文本再次变化,对当前程序的运行没有影响,这对程序是一种保护。

但是,对于像python这样解释执行的语言,我们有时候会用到“from 模块 import 变量名”这样的形式,如果这个变量直接被定义在文件当中,那么这些变量在程序开始时就会被定义、赋值,运行过程中值不变。如果打算在运行过程中对这个模块进行重写,那么更改后的变量值是无法被使用的。

对于这个问题,可以换一种思路,将这个模块中的变量定义在函数里,而函数是在程序运行的时候动态执行的,这样就能够获取到变量的最新值。下面是例子:

首先,不使用函数的情况:

#model1.py

p_hello = 'hello world!'

#test1.py

from model1 import p_hello

file = open('model1.py', 'w')

file.write("p_hello = '%s!'"%('hello you'))

file.close()

print p_hello

这样,执行test1.py的时候,出现的结果仍然是'hello world',而非‘hello you',说明变量已经加载到内存中,尽管该模块的文件在硬盘上已经被重写。

接下来,使用函数的情况:

#model1.py

def rule():

p_hello = 'hello world!'

return locals()

#test1.py

from model1 import rule

file = open('model1.py', 'w')

file.write('def rule():n')

file.write("    p_hello = '%s!'n"%('hello you'))

file.write("    return locals()n")

file.close()

p_hello = rule()['p_hello']

print p_hello

这样,print出来的结果就是hello you 了,因为在运行的时候,先执行了一遍这个函数,再通过函数获取了这个变量,这样就会获得新值。

相关阅读:

python动态加载变量方法

Python动态加载模块的3种方法介绍

python动态加载包的方法小结

Python重新加载模块方法

Python实现动态加载模块、类、函数的方法分析

python动态创建类实例方法

Python学习之模块的加载

python实现在sqlite动态创建表的方法

python 动态获取当前运行的类名和函数名的方法

详解python的数字类型变量与其方法

Python类的动态修改的实例方法

python anaconda 安装 环境变量 升级 以及特殊库安装的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值