簡體   English   中英

擴展基類的Python方式

[英]Pythonic way of extending base class

我正在嘗試使用一些添加的構造函數來創建類似類的Pandas Dataframe:

class ExtendedDataFrame(DataFrame):
    def __init__(self):
        super(ExtendedDataFrame, self).__init__()   # without this I get a pandas error

    @classmethod    
    def contructor1(cls, filename):
        "Create DataFrame from file"
        df = pd.read_csv(filename) # returns a DataFrame
        df.__class__ = cls
        return df

    # more methods extending Dataframe ...

現在,我可以執行以下操作:

ExtendedDataFrame.constructor1('table_xx.txt')    # returns an ExtendedDataFrame instance

我想要的是能夠以這種方式獲取我的Table類的實例:

ExtendedDataFrame('table_xx.txt')

推薦的方法是什么?

換句話說,我試圖制作一個ExtendedDataFrame類,但是某些熊貓的方法(如read_csv返回一個DataFrame ,並且我想返回一個ExtendedDataFrame

__init__方法中使用參數擴展,調查提供的參數,如果找到一個字符串參數,則在內部執行Table.constructor1('string')

另一方面,更仔細地看您的問題,我想知道您想在這里實現什么。 到目前為止,您constructor1類方法是沒有意義的。 您想實現哪種功能,以至於df = pd.read_csv(...)對您來說還不夠?

暫無
暫無

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

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