1
私は以下の 'v3'が動作しなくなり、属性エラーが発生する理由を理解しようとしています。 v1とv2はv3ではなく動作するのはなぜですか?コードは短く再現性があり、説明が必要ないほどシンプルであると思うが、明らかでないものがあれば教えてくれる。クラス、オブジェクト、メソッドについての混乱python
import numpy as np
import pandas as pd
class Example(object):
def __init__(self, ts_df):
self.all_df = ts_df
def simple_av(self, lookback=""):
self.agg = self.all_df.mean(axis=1)
class Example_two(object):
def __init__(self, ts_df, method):
self.ts = ts_df
self.method = method
def apply_method(self, **kwargs):
self.output = self.method(self.ts, **kwargs)
ts = pd.DataFrame(np.random.rand(100,2))
'''v1'''
ex = Example(ts)
ex.simple_av()
print (ex.agg.head())
'''v2'''
func = pd.rolling_mean
ex = Example_two(ts, func)
req_args = dict({'window': 3})
ex.apply_method(**req_args)
print (ex.output.head())
'''v3'''
func = Example.simple_av
ex= Example(ts)
ex.func()