PYTHON
Python Classes And Object Orientated Design
Date Published: | |
Last Modified: |
Since Python v3.3, you can use both the `@staticmethod` and `@abstractmethod` decorators on the same class function (and the `@abstractstaticmethod` decorator has been depreciated).
import abc
class MyClass:
@staticmethod
@abstractmethod
def my_func():
pass
Checking If A Class Is A Subclass Of Another
You can check if one class is a sub-class of another with the issublass()
function:
class ParentClass:
pass
class ChildClass(ParentClass):
pass
class StandaloneClass:
pass
print(issubclass(ChildClass, ParentClass))
# stdout: True
print(issubclass(StandaloneClass, ParentClass))
# stdout: False
# Works with variables which are assigned to a class too
my_class = ChildClass
print(issubclass(my_class, ParentClass))
# stdout: True
Class Variables
In Python, classes can be assigned variables, either statically or dynamically. The important difference between assigning variable to A class and assigning variables to an INSTANCE of a class is that class variables are shared between all variables/instances of that class, while instance variables are unique to that particular instance of the class.
class TestClass:
pass
# Create two class variables (not here that we are NOT)
# creating instances, there are no brackets () at the end)
test_class_1 = TestClass
test_class_2 = TestClass
# Assign a value to a class variable
test_class_1.my_var = 2
# The other class variable now has this value too!
print(test_class_2.my_var)
# stdout: 2
test_class_2.my_var = 3
# The original classes variable has changed, as the variable is shared
# between all identical class objects
print(test_class_1.my_var)
# stdout: 3

Related Content:
- An Introduction To Asynchronous Programming In Python
- Installing Python
- Parsing Command-Line Arguments In Python
- Python Sets
- scipy