バカな私はこんなクラスを書いて
class SessionManager:
def __init__(self):
self.continuous = 0
self.stay_min = None
self.datetime = None
def stay_min(self, df: Series) -> float:
"""
Args:
df (Series): row including (user_id,
datetime,continuos,session_id)
Returns:
"""
is_continuous: bool =\
df.continuous - self.continuous == -1
if is_continuous:
dst = (self.datetime - df.datetime).total_seconds()/60
else:
dst = np.nan
self.datetime = df.datetime
self.continuous = df.continuous
return dst
session_manager = SessionManager()
session_manager.stay_min()
としたのですが、NoneType is not callable.
というエラーが出てしまい、20分どぶに捨てました。
なぜダメなのか
__init__(self)
の中で、メソッドと同じ名前を定義しています。
そして、これはNone
で初期化されているので、当然関数として呼び出せません。
まとめ
名前空間に気をつけましょう・・・・