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

21 lines
402 B
Markdown

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.
```python
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`
```