It is very surprising to me that I can instantiate an abstract class in python:
from abc import ABC
class Duck(ABC):
def __init__(self, name):
self.name = name
if __name__=="__main__":
d = Duck("Bob")
print(d.name)
The above code compiles just fine and prints out the expected result. Doesn't this sort of defeat the purpose of having an ABC?