What are magic methods?
Python is a very flexible programming language, and the magic methods provide this flexibility.
Magic Methods are methods with specific syntax that provide functionality for different operations in Python.
For example:
# What do you use:
len(string)
a + b
# What Python does:
string.__len__()
a.__add__(b)
The a + b
operator invokes the __add__()
magic method of the first object (a.__add__(b)
). In Python, operators like +
call the corresponding magic methods of the objects involved. The __init__
magic method is called when an instance of a class is created.
Note
Magic methods have a specific syntax where the method name is enclosed in double underscores (
__
) at start and end of method name.
Let's take a look at an example implementation of the __add__
magic method:
12345678910111213class Road: def __init__(self, length): self.length = length def __add__(self, other_road): return Road(self.length + other_road.length) road_1 = Road(20) road_2 = Road(30) road_3 = road_1 + road_2 # road_3 = road_1.__add__(road_2) print(type(road_3)) print(road_3.length)
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.78
What are magic methods?
Stryg for at vise menuen
Python is a very flexible programming language, and the magic methods provide this flexibility.
Magic Methods are methods with specific syntax that provide functionality for different operations in Python.
For example:
# What do you use:
len(string)
a + b
# What Python does:
string.__len__()
a.__add__(b)
The a + b
operator invokes the __add__()
magic method of the first object (a.__add__(b)
). In Python, operators like +
call the corresponding magic methods of the objects involved. The __init__
magic method is called when an instance of a class is created.
Note
Magic methods have a specific syntax where the method name is enclosed in double underscores (
__
) at start and end of method name.
Let's take a look at an example implementation of the __add__
magic method:
12345678910111213class Road: def __init__(self, length): self.length = length def __add__(self, other_road): return Road(self.length + other_road.length) road_1 = Road(20) road_2 = Road(30) road_3 = road_1 + road_2 # road_3 = road_1.__add__(road_2) print(type(road_3)) print(road_3.length)
Tak for dine kommentarer!