Python Language OOP: Difference between revisions
Jump to navigation
Jump to search
Line 36: | Line 36: | ||
==<span id='Static_Method'></span>Static Methods== | ==<span id='Static_Method'></span>Static Methods== | ||
==Static Initialization at Class Level== | |||
To perform an initialization once, upon creation of the type in the class' namespace, place the code directly under the code definition: All methods placed into the class are also "executed" - like when defining a function in the global namespace - but they are not calling. | |||
<syntaxhighlight lang='py'> | |||
class MyClass: | |||
# executed only once upon creation of the type | |||
pattern = re.compile(r'^(\w+):(\w+)-(\w+)$') | |||
def __init__(self): | |||
... | |||
def my_method(self): | |||
... | |||
</syntaxhighlight> | |||
=Initialization= | =Initialization= |
Revision as of 21:31, 15 March 2022
External
Internal
TODO
- How to call a method from inside the constructor. If I try, the compiler says "Unresolved reference"
Overview
Attributes and methods.
Class
class MyClass:
def __init__(self):
pass
The class may be declared with parentheses, but the IDE static checks find those as "redundant":
class MyClass():
...
Methods
Special Methods
__str__()
__str__()
is used by print()
, str()
and the string formatters to produce a string representation of an instance.
class MyClass:
...
def __str__(self):
return self.name + ', ' + self.color
Static Methods
Static Initialization at Class Level
To perform an initialization once, upon creation of the type in the class' namespace, place the code directly under the code definition: All methods placed into the class are also "executed" - like when defining a function in the global namespace - but they are not calling.
class MyClass:
# executed only once upon creation of the type
pattern = re.compile(r'^(\w+):(\w+)-(\w+)$')
def __init__(self):
...
def my_method(self):
...
Initialization
Inheritance
Overriding
Polymorphism
.