til/python/defining-method-outside-of-class.md
2021-05-04 14:12:59 +03:00

402 B

You can define methods outside of class definition. However, you need to make sure that you bound the method to the class itself not instance.

class Foo:
    x = 42


def bar(self):
    return self.x


if __name__ == "__main__":
    foo = Foo()

    Foo.bar = bar
    print(foo.bar())  # 42

    foo.bar = bar
    print(foo.bar())  # error, because `bar` doesn't know about `self`