Rumah pembangunan bahagian belakang Tutorial Python python动态加载变量示例分享

python动态加载变量示例分享

Jun 16, 2016 am 08:45 AM
pemuatan dinamik

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

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Python melaksanakan pemuatan halaman dinamik dan analisis fungsi pemprosesan permintaan tak segerak untuk aplikasi koleksi pelayar tanpa kepala Python melaksanakan pemuatan halaman dinamik dan analisis fungsi pemprosesan permintaan tak segerak untuk aplikasi koleksi pelayar tanpa kepala Aug 08, 2023 am 10:16 AM

Python melaksanakan pemuatan dinamik dan fungsi pemprosesan permintaan tak segerak bagi aplikasi koleksi penyemak imbas tanpa kepala Dalam perangkak web, kadangkala perlu untuk mengumpul kandungan halaman yang menggunakan pemuatan dinamik atau permintaan tak segerak. Alat perangkak tradisional mempunyai had tertentu dalam memproses halaman sedemikian dan tidak boleh mendapatkan kandungan yang dijana oleh JavaScript pada halaman dengan tepat. Menggunakan pelayar tanpa kepala boleh menyelesaikan masalah ini. Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan pelayar tanpa kepala untuk mengumpul kandungan halaman menggunakan pemuatan dinamik dan permintaan tak segerak.

Cara mengendalikan pemuatan dinamik dan penukaran komponen dalam Vue Cara mengendalikan pemuatan dinamik dan penukaran komponen dalam Vue Oct 15, 2023 pm 04:34 PM

Mengendalikan pemuatan dinamik dan penukaran komponen dalam Vue Vue ialah rangka kerja JavaScript popular yang menyediakan pelbagai fungsi fleksibel untuk mengendalikan pemuatan dinamik dan penukaran komponen. Dalam artikel ini, kami akan membincangkan beberapa kaedah mengendalikan pemuatan dinamik dan penukaran komponen dalam Vue, dan memberikan contoh kod khusus. Memuatkan komponen secara dinamik bermakna memuatkan komponen secara dinamik pada masa jalan seperti yang diperlukan. Ini meningkatkan prestasi dan kelajuan pemuatan aplikasi anda kerana komponen yang berkaitan dimuatkan hanya apabila diperlukan. Vue menyediakan async dan awa

Mendedahkan prinsip kemas kini hangat di Golang: penjelasan orang dalam tentang pemuatan dinamik dan pemuatan semula Mendedahkan prinsip kemas kini hangat di Golang: penjelasan orang dalam tentang pemuatan dinamik dan pemuatan semula Jan 20, 2024 am 10:09 AM

Meneroka Prinsip Kemas Kini Panas Golang: Misteri Pemuatan Dinamik dan Muat Semula Pengenalan: Dalam bidang pembangunan perisian, pengaturcara sering berharap dapat mengubah suai dan mengemas kini kod tanpa memulakan semula aplikasi. Keperluan sedemikian sangat penting kepada kecekapan pembangunan dan kebolehpercayaan operasi sistem. Sebagai bahasa pengaturcaraan moden, Golang menyediakan pembangun dengan banyak mekanisme mudah untuk melaksanakan kemas kini hangat. Artikel ini akan menyelidiki prinsip kemas kini panas Golang, terutamanya misteri pemuatan dan pemuatan semula dinamik, dan akan menggabungkannya dengan contoh kod khusus.

Cara membuat jadual yang memuatkan data secara dinamik menggunakan Vue dan Element-UI Cara membuat jadual yang memuatkan data secara dinamik menggunakan Vue dan Element-UI Jul 21, 2023 pm 11:49 PM

Cara menggunakan Vue dan Element-UI untuk mencipta jadual yang memuatkan data secara dinamik Dalam pembangunan web moden, jadual data ialah salah satu komponen antara muka biasa. Vue.js ialah rangka kerja bahagian hadapan yang sangat popular pada masa kini, dan Element-UI ialah satu set perpustakaan komponen yang dibangunkan berdasarkan Vue.js, yang menyediakan set komponen UI yang kaya untuk kami gunakan. Artikel ini akan memperkenalkan cara menggunakan Vue dan Element-UI untuk mencipta jadual yang boleh memuatkan data secara dinamik dan memberikan contoh kod yang sepadan. Pertama, kita perlu memasang

Selesaikan ralat Vue: Tidak dapat menggunakan Penghala Vue dengan betul untuk memuatkan komponen secara dinamik berdasarkan parameter penghalaan Selesaikan ralat Vue: Tidak dapat menggunakan Penghala Vue dengan betul untuk memuatkan komponen secara dinamik berdasarkan parameter penghalaan Aug 20, 2023 am 08:09 AM

Selesaikan ralat Vue: Tidak dapat menggunakan VueRouter dengan betul untuk memuatkan komponen secara dinamik berdasarkan parameter penghalaan Dalam proses menggunakan VueRouter untuk lompatan penghalaan, kadangkala kita perlu memuatkan komponen secara dinamik berdasarkan parameter penghalaan. Walau bagaimanapun, dalam beberapa kes, kami mungkin menghadapi ralat biasa: tidak dapat menggunakan VueRouter dengan betul untuk memuatkan komponen secara dinamik berdasarkan parameter penghalaan. Artikel ini akan menerangkan cara menyelesaikan ralat ini dan memberikan contoh kod. Pertama, kita perlu menjelaskannya: VueRouter boleh lulus

Cara menggunakan pantulan dan memuatkan himpunan secara dinamik dalam C# Cara menggunakan pantulan dan memuatkan himpunan secara dinamik dalam C# Oct 08, 2023 pm 12:12 PM

Cara menggunakan pantulan dan memuatkan himpunan secara dinamik dalam C# Pengenalan: Dalam C#, pantulan (Refleksi) ialah mekanisme berkuasa yang membolehkan kami memperoleh dan memanipulasi metadata atur cara semasa masa jalan, termasuk maklumat jenis, maklumat ahli, dsb. Himpunan memuatkan secara dinamik ialah aplikasi biasa yang dilaksanakan melalui refleksi, dan sangat berguna dalam beberapa senario tertentu. Artikel ini akan memperkenalkan secara terperinci cara menggunakan pantulan dan memuatkan himpunan secara dinamik dalam C#, dan memberikan contoh kod khusus. Konsep asas refleksi Refleksi adalah fungsi penting dalam bahasa C#

Petua praktikal phpSpider: Bagaimana untuk menangani pemuatan dinamik kandungan web? Petua praktikal phpSpider: Bagaimana untuk menangani pemuatan dinamik kandungan web? Jul 22, 2023 am 08:33 AM

Petua praktikal phpSpider: Bagaimana untuk menangani pemuatan dinamik kandungan web? Apabila merangkak data halaman web, kami sering menghadapi masalah bahawa kandungan yang dimuatkan secara dinamik tidak boleh diperoleh secara langsung melalui perangkak. Kandungan yang dimuatkan secara dinamik ini boleh menjadi data yang diperoleh melalui permintaan AJAX, elemen DOM yang diberikan melalui JavaScript, dsb. Untuk menyelesaikan masalah ini, artikel ini akan memperkenalkan beberapa petua praktikal untuk menangani masalah pemuatan dinamik halaman web apabila menggunakan phpSpider. 1. Gunakan alatan penyahpepijatan rangkaian untuk mencari URL yang dimuatkan secara dinamik

Gunakan kaedah load() kelas Sistem di Java untuk memuatkan kelas atau sumber secara dinamik Gunakan kaedah load() kelas Sistem di Java untuk memuatkan kelas atau sumber secara dinamik Jul 25, 2023 am 10:25 AM

Java menggunakan kaedah load() kelas Sistem untuk memuatkan kelas atau sumber secara dinamik Dalam pembangunan Java, kadangkala kita perlu memuatkan kelas atau sumber secara dinamik semasa program berjalan untuk mencapai beberapa fungsi yang fleksibel. Java menyediakan kaedah load() kelas Sistem untuk mencapai keperluan ini. Artikel ini akan memperkenalkan penggunaan kaedah load() kelas Sistem dan memberikan contoh kod yang sepadan. Mula-mula, mari kita fahami definisi kaedah load(): publicstaticvo

See all articles