亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Python 中迭代新對象實例

在 Python 中迭代新對象實例

夢里花落0921 2022-07-26 10:14:25
我是 OOP Python 的新手,我有一個對象:class Object:    def __init__(self, start_date, end_date, thing)        self.start_date = start_date        self.end_date = end_date         self.thing = thing       ( ... )     def get_things(self):        return self.db.execute_fetchall(f"select date, p1, p2, p2, p4 from {self.thing} where date between '{self.start_date}' and '{self.end_date}'")       ( ... ) 現在,如果我有:some_things = ["table_1", "table_2", "table_3"]Object.get_things()該方法只是選擇一個給定的表,但我想盡可能高效。除了:for thing in things:     Object(start_date=start_date, end_date=end_date, thing=thing)我是否應該在批量語句中使用這種邏輯并擁有一種get_all()方法?我選擇的表(靜態)總是相同的,我正在尋找從它們中選擇數據的最快方法......
查看完整描述

1 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

您可能會考慮使用類變量,這樣您就不必聚合您的事物集合。


class object:

    things = []

    def __init__(self, thing):

        self.thing = thing

        self.things.append(thing)

    def get_things(self):

        return(self.things)


a = object(1)

b = object(2)

c = object(3)


print(a.get_things()) # Prints [1, 2, 3]

這可能是最快的方式,因為您的事物列表將存儲在內存中,并且檢索聚合列表不需要任何計算。應該指出,這種方法有其自身的缺點。例如,如果您更改了某個 object.thing 的值,則您還需要在列表 object.things 中反映該更改,并且您會看到刪除或覆蓋對象實例等事情需要一些額外的工作。


查看完整回答
反對 回復 2022-07-26
  • 1 回答
  • 0 關注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號