Difference between 'instance', 'class', and 'static' method visually explained

The difference in Python OOP between:

  • instance method
  • class method
  • static method

visually explained using 𝗺𝗲𝗺𝗼𝗿𝘆_𝗴𝗿𝗮𝗽𝗵:

25 points · 5 comments · view on lemmy.world

5 Comments

tunetardis@piefed.ca · 2 pts · 48d (4 replies)

Coming from C++, I initially thought it aggravating that you have to go self. everywhere when working with classes in Python. But I've conceded that it improves code-legibility, and now I'm going this-> everywhere when I'm back in C++.

bterwijn@programming.dev · 0 pts · 48d (3 replies)

Another common naming convention in C++ is using an underscore as prefix for member variables: int _memberVariable{123};

tunetardis@piefed.ca · 1 pts · 47d (2 replies)

My personal convention in C++ was to use an m prefix on member variables and a g for class variables.

I guess in Python, I think of _ as equivalent to protected scope in C++ and __ (double underscore) as equivalent to private. Not a perfect analogy, but it works for me.

aion@lemmy.world · 2 pts · 47d (1 reply)

Just don't use double underscores in C++, identifiers containing double underscores are reserved for the compiler/linker/standard library.

bterwijn@programming.dev · 1 pts · 47d

Same thing in Python, double underscore prefix triggers "name mangling". There are issues that can pop up when using it if not aware.