我有一些設定為按計劃運行的 python 代碼。(我認為我的問題就像在回圈中一樣。)
假設在最基本的形式中,代碼片段如下所示:
A = 1
B = 2
renameMe = A B
假設調度程式每 5 分鐘運行一次相同的代碼片段。每次運行代碼時,變數 A & B 的值都不同,但操作renameMe = A B始終相同。
A & B 的值是從每 5 分鐘更新一次的資料幀中提取的,所以我不知道它們是什么提前,但是如果我需要事先對它們做一些事情而不是立即將它們分配給 A & B , 我可以。
我最近發現,要讓其他事情發揮作用,renameMe每次運行該代碼片段時,我都需要能夠重命名該變數。換句話說,我希望變數的名稱是renameMe1代碼片段第一次運行時,然后renameMe2是 5 分鐘后運行時,依此類推。
只要我能夠找出新的變數名稱并在其他地方使用它,變數名稱以何種方式更改(整數、字串等)并不重要。
uj5u.com熱心網友回復:
千萬不要使用可變變數名,你就會有問題,使用的容器:
一個串列:
# first time
container = []
# each loop/run
container.append(A B)
## last value
container[-1]
一本字典:
# first time
container = {}
# each loop/run
container['new_id'] = A B
# access arbitrary value
container['my_previous_id']
如果需要持久性,請使用平面檔案或資料庫。
uj5u.com熱心網友回復:
我認為使用一個類是合適的,以便setattr可以使用:
class newVal:
def __init__(self):
self.n = 1
def addVal(self, a, b):
setattr(self, f”val{self.n}”, a b)
self.n = 1
Values = newVal()
Values.addVal(a, b)
Values.val1 現在將被分配
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336408.html
