Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

PythonのメソッドでNoneType is not callable.

バカな私はこんなクラスを書いて

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で初期化されているので、当然関数として呼び出せません。

まとめ

名前空間に気をつけましょう・・・・

ryuichiastrona
趣味でkaggleとか機械学習に興味があります。 大学ではメカの勉強をしています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away