mirror of
https://github.com/github/codeql.git
synced 2025-12-25 21:26:37 +01:00
49 lines
937 B
Python
49 lines
937 B
Python
#Superclass __init__ calls subclass method
|
|
|
|
class Super(object):
|
|
|
|
def __init__(self, arg):
|
|
self._state = "Not OK"
|
|
self.set_up(arg)
|
|
self._state = "OK"
|
|
|
|
def set_up(self, arg):
|
|
"Do some set up"
|
|
|
|
class Sub(Super):
|
|
|
|
def __init__(self, arg):
|
|
Super.__init__(self, arg)
|
|
self.important_state = "OK"
|
|
|
|
def set_up(self, arg):
|
|
Super.set_up(self, arg)
|
|
"Do some more set up" # Dangerous as self._state is "Not OK"
|
|
|
|
|
|
#Improved version with inheritance:
|
|
|
|
class Super(object):
|
|
|
|
def __init__(self, arg):
|
|
self._state = "Not OK"
|
|
self.super_set_up(arg)
|
|
self._state = "OK"
|
|
|
|
def super_set_up(self, arg):
|
|
"Do some set up"
|
|
|
|
|
|
class Sub(Super):
|
|
|
|
def __init__(self, arg):
|
|
Super.__init__(self, arg)
|
|
self.sub_set_up(self, arg)
|
|
self.important_state = "OK"
|
|
|
|
|
|
def sub_set_up(self, arg):
|
|
"Do some more set up"
|
|
|
|
|