有没有办法设置Python对象属性object.attribute
来返回函数或getter方法?你知道吗
例如:
class CrossSection():
def __init__(self):
self.data = pd.Series([1,3,5,np.nan,6,8])
现在构造一个Panel()对象,我想要一个属性面板数据每次从底层横截面对象返回数据(最好不复制数据):
class Panel():
def __init__(self):
# - Core Object - #
self.xs = dict()
self.xs[1] = CrossSection()
self.xs[2] = CrossSection()
# - Data Object - #
self.data = self.find_data()
def find_data(self):
self.data = dict()
for n in self.xs.keys():
self.data[n] = self.xs[n].data
return self.data
在上面的例子中,有两个问题:
find_data()
方法只在__init__
上运行,但是如果任何底层的CrossSections()发生了变化(或者在__init__
之后加载),那么自我数据不会表示底层的CrossSection()
对象。你知道吗self.data
构造一个新字典。你知道吗但它确实模仿了我想要的行为:
p = Panel()
p.data
{1: 0 1
1 3
2 5
3 NaN
4 6
5 8
dtype: float64,
2: 0 1
1 3
2 5
3 NaN
4 6
5 8
dtype: float64}
因此
Panel.data
这样
基于基础架构的更新自我.xs词典
CrossSection()
对象。你知道吗Panel.data
返回底层上的函数吗
CrossSection()
对象?[或者是我使用
类方法?]你知道吗
这是http://docs.python.org/2/library/functions.html#property的典型用例
是否显式存储CrossSection()对象的列表?你知道吗
相关问题 更多 >
编程相关推荐