如何向 Python 类中的托管属性添加方法

问题描述 投票:0回答:1

目前我有一个python类函数在哪里

class Data:
    
    def __init__(self, data=None, target=None):

        self._data = None
        self._target = None

        self.X = data
        self.y = target

    @property
    def X(self):
        return self._data
    
    @X.setter
    def X(self, data):
        self._data = data
    
    @property
    def y(self):
        return self._target
    
    @y.setter
    def y(self, target):
        self._target = target

    def view(self, method):

        print(pd.DataFrame(method))

我想要做的是向现有托管属性添加一个视图方法,该视图方法将打印它添加到的属性。

d = Data([1,2,3], [4, 5, 6])
d.X.view()
    0
0   1
1   2
2   3

d.y.view()
    0
0   4
1   5
2   6

有人可以帮忙吗?

python python-3.x class python-decorators method-chaining
1个回答
0
投票

就我个人而言,我不会为 getter 和 setter 而烦恼,而是创建一个全新的类(如果需要,可以使用 setter 和 getter,添加它们以防万一,如果不需要它们则删除它们):

class DataProp:
    def __init(self, data=None):
        self.data = data

    def set(data):
        self.data = data

    def get():
        return self.data

    def view():
        print(pd.DataFrame(self.data))

class Data:
    def __init__(self, data=None, target=None):
        self.X = DataProp(data)
        self.y = DataProp(target)
© www.soinside.com 2019 - 2024. All rights reserved.