实现python设置逻辑(如在get和set中)

时间:2015-11-14 15:13:02

标签: python

所以我有一个班级,

import numpy as np
class MyClass:
    def __init__(self):
       self.means = np.zeros(5)

我有一些期望ndarray对象的函数......但我有函数调用我需要将我的代码与我的对象的意思集成到列表中。一旦发生,一切都会破裂。

我需要一种强制类将传入列表设置为ndarray的方法。看起来这是可能的,回顾python文档中的__set__ and __setattrib__ ......但在阅读文档之后,我仍然对如何获得所需行为感到困惑。

我想要的是确保其他代码说明时

MyClass.means = [0,0,0,0]

手段设置为:np.array([0,0,0,0])

1 个答案:

答案 0 :(得分:3)

使用属性设置器:

class MyClass(object):
    def __init__(self):
        self._means = np.zeros(5)

    @property
    def means(self):
        return self._means  # Note the underscore

    @means.setter
    def means(self, value):
        # Convert to np array before setting
        self._means = np.array(value)