While it is noted here in the docs:
https://pybind11.readthedocs.io/en/stable/advanced/classes.html#overriding-virtual-functions-in-python
it is still sometimes easy to forget. If it were somehow possible, it'd be nice to robustly detect access to unconstructed base classes. (... though it may be a big performance penalty, so I'm fine with this being closed as "Not a Problem")
Example failure case from above:
class Dachschund(Dog):
def __init__(self, name):
# Oops!
self.name = name
def bark(self):
return "yap!"
d = Dog("Sir Schnitzel")
d.go(10) # Nuts!
Had run into it when writing this example, and then felt dumb once I realized what the problem was.