首頁 後端開發 Python教學 python动态加载变量示例分享

python动态加载变量示例分享

Jun 16, 2016 am 08:45 AM
動態載入

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

但是,对于像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 了,因为在运行的时候,先执行了一遍这个函数,再通过函数获取了这个变量,这样就会获得新值。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python實作無頭瀏覽器擷取應用的頁面動態載入與非同步請求處理功能解析 Python實作無頭瀏覽器擷取應用的頁面動態載入與非同步請求處理功能解析 Aug 08, 2023 am 10:16 AM

Python實作無頭瀏覽器擷取應用程式的頁面動態載入與非同步請求處理功能解析在網路爬蟲中,有時需要擷取使用了動態載入或非同步請求的頁面內容。傳統的爬蟲工具對於這類頁面的處理有一定的局限性,無法精確地取得頁面上透過JavaScript產生的內容。而使用無頭瀏覽器則可以解決這個問題。本文將介紹如何使用Python實作無頭瀏覽器來擷取使用動態載入與非同步請求的頁面內容

Vue中如何處理元件的動態載入和切換 Vue中如何處理元件的動態載入和切換 Oct 15, 2023 pm 04:34 PM

Vue中處理組件的動態載入和切換Vue是一個流行的JavaScript框架,它提供了各種靈活的功能來處理組件的動態載入和切換。在本文中,我們將討論一些Vue中處理元件動態載入和切換的方法,並提供具體的程式碼範例。動態載入元件是指根據需要在執行時期動態載入元件。這樣可以提高應用程式的效能和載入速度,因為只有當需要時才會載入相關的元件。 Vue提供了async和awa

揭秘Golang熱更新原理:動態載入與重載的內幕講解 揭秘Golang熱更新原理:動態載入與重載的內幕講解 Jan 20, 2024 am 10:09 AM

Golang熱更新原理探究:動態載入與重載的奧秘引言:在軟體開發領域,程式設計師經常希望能夠在不重啟應用的情況下進行程式碼修改和更新。這樣的需求對於開發效率和系統運作的可靠性都具有重要意義。而Golang作為一門現代化的程式語言,為開發者提供了許多便捷的機制來實現熱更新。本文將深入探討Golang熱更新的原理,特別是動態載入和重載的奧秘,並將結合具體的程式碼範例進

如何使用Vue和Element-UI建立動態載入資料的表格 如何使用Vue和Element-UI建立動態載入資料的表格 Jul 21, 2023 pm 11:49 PM

如何使用Vue和Element-UI建立動態載入資料的表格在現代的Web開發中,資料表格是常見的介面元件之一。 Vue.js是當下非常受歡迎的前端框架,而Element-UI是基於Vue.js開發的一套元件庫,提供了豐富的UI元件供我們使用。本文將介紹如何使用Vue和Element-UI來建立一個可以動態載入資料的表格,並且給出對應的程式碼範例。首先,我們需要安裝

解決Vue封包錯誤:無法正確使用Vue Router根據路由參數動態載入組件 解決Vue封包錯誤:無法正確使用Vue Router根據路由參數動態載入組件 Aug 20, 2023 am 08:09 AM

解決Vue報錯:無法正確使用VueRouter根據路由參數動態載入元件在使用VueRouter進行路由跳轉的過程中,有時我們需要根據路由參數動態載入元件。但是,在某些情況下,我們可能會遇到一個常見的錯誤:無法正確使用VueRouter根據路由參數動態載入元件。本文將介紹如何解決這個報錯,並提供程式碼範例。首先,我們需要明確一點:VueRouter可以透過

C#中如何使用反射和動態載入組件 C#中如何使用反射和動態載入組件 Oct 08, 2023 pm 12:12 PM

C#中如何使用反射和動態載入組件引言:在C#中,反射(Reflection)是一種強大的機制,它允許我們在運行時獲取和操作程式的元數據,包括類型資訊、成員資訊等。而動態載入程式集則是透過反射來實現的常見應用,並且在一些特定場景中非常有用。本文將詳細介紹C#中如何使用反射和動態載入組件,並提供具體的程式碼範例。反射的基本概念反射是C#語言中的重要功能

phpSpider實用技巧:如何處理網頁內容的動態載入問題? phpSpider實用技巧:如何處理網頁內容的動態載入問題? Jul 22, 2023 am 08:33 AM

phpSpider實用技巧:如何處理網頁內容的動態載入問題?在爬取網頁資料時,經常會遇到動態載入的內容無法直接透過爬蟲取得的問題。這些動態載入的內容可以是透過AJAX請求取得的資料、透過JavaScript進行渲染的DOM元素等。為了解決這個問題,本文將介紹一些在使用phpSpider時處理網頁動態載入問題的實用技巧。一、使用網路偵錯工具找出動態載入的URL

Vue技術開發中如何處理圖片資源的壓縮和動態加載 Vue技術開發中如何處理圖片資源的壓縮和動態加載 Oct 10, 2023 pm 11:57 PM

Vue技術開發中如何處理圖片資源的壓縮和動態載入在現代web開發中,圖片資源是不可避免的。然而,大型的高解析度圖片可能會影響網頁的載入速度,影響使用者體驗。因此,壓縮和動態載入圖片資源成為了開發中的重要議題。本文將介紹如何在Vue技術開發中處理圖片資源的壓縮和動態加載,並提供具體的程式碼範例。一、圖片壓縮為了提高網頁的載入速度,我們可以對圖片資源進行壓縮處理。在

See all articles