簡體   English   中英

Python 2.7 - 在內存中保留兩個工作版本的包

[英]Python 2.7 - Keep two working versions of package in memory

是否有可能在沒有破壞任何東西的情況下做那樣的事情:

import some
some_copy = some
print some.version  # v1.0

# modify code and reload package
# ...
print some.version  # v1.1
print some_copy.version  # v1.0

所以我希望同時運行兩個不同版本的模塊/包(在一個過程中)。

假設您有兩個腳本。 第一個,就像這個叫做some.py

class some(object):
    def __init__(self):
        self.version = '1.0'

另一個叫做wcode.py。 執行它

import some
some1 = some##.some()

raw_input("Waiting for you to change '1.0' into '1.1'.\nPress ENTER when done.")

reload(some)
some2 = some##.some()

print(some1().version)
print(some2().version)

版畫

1.0
1.0

為什么? 僅僅因為some導入的定義被覆蓋。 這意味着您可能希望實例化它,以便將其方法定義為第一個版本類中的方法。 如下

import some
some1 = some.some()

raw_input("Waiting for you to change '1.0' into '1.1'.\nPress ENTER when done.")

reload(some)
some2 = some.some()

print(some1.version)
print(some2.version)

版畫

1.0
1.1

所以答案是沒有 條件的 重新加載模塊 之前 ,不想實例化你的第一個版本類 ,你想做什么是不可能 如上所述,實際上。 請注意,為什么在這個世界上你想做到這一點超出了我。 但你可能有充分的理由。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM