1
我有一個名爲DNA的Python對象。我想創建100個DNA實例。每個實例都包含一個對所有實例都相同的熊貓數據框。爲了避免重複,我想將這個數據框作爲一個靜態/類屬性。將熊貓數據框指定爲靜態類變量 - 內存使用(Python)
import pandas as pd
some_df = pd.DataFrame()
class DNA(object):
df = some_variable # Do i declare here?
def __init__(self,df = pd.DataFrame(), name='1'):
self.name = name
self.instance_df = instance_df # I want to avoid this
DNA.some_df = df # Does this duplicate the data for every instance?
這樣做的正確方法是什麼?
- 我可以使用init函數來創建類變量嗎?或者它會爲每個類的實例創建一個單獨的類變量?
- 我需要聲明'class ..'和'def init(...)'之間的類變量嗎?
- 還有其他的一些方法嗎?
我希望能夠改變我用作類變量的數據框,但是一旦加載了類,就需要在所有實例中引用相同的值(即相同的內存)。
有*在Python *沒有變量聲明,所以目前尚不清楚你至於問什麼你問題的那個方面。這就是說,你可能只是想在這裏指定* df = some_variable#我在這裏聲明嗎?' –
如果我這樣做,我只能構造類,如果我在內存中有'some_variable'。所以,如果我正確理解你,我不能動態地做到這一點...正確嗎? –
當然可以。在你的代碼中的任何地方,你可以做'MyClass.my_class_variable = value' –