I am getting below error while accessing inner class __OnlyOne from outer. what is wrong here? I am trying to use a singleton design pattern here by creating only one instance of inner object to outer.
Traceback (most recent call last):
File "F:\parking_lot_code\test.py", line 25, in <module>
PL.add_parking_floor('First Floor')
File "F:\parking_lot_code\test.py", line 21, in add_parking_floor
ParkingLot.instance.__parking_floors.append(floor)
AttributeError: '__OnlyOne' object has no attribute '_ParkingLot__parking_floors'
Process finished with exit code 1
Code
class ParkingLot:
instance = None
class __OnlyOne:
def __init__(self, name, address):
self.__name = name
self.__address = address
self.__parking_floors = []
def __init__(self, name, address):
if not ParkingLot.instance:
ParkingLot.instance = ParkingLot.__OnlyOne(name, address)
else:
ParkingLot.instance.__name = name
ParkingLot.instance.__address = address
def __getattr__(self, name):
return getattr(self.instance, name)
def add_parking_floor(self, floor):
ParkingLot.instance.__parking_floors.append(floor)
PL = ParkingLot('Test Parking Lot', 'Bombay')
PL.add_parking_floor('First Floor')