Efficient management of instances with unique dictionaries in a repeated instantiation situation

27 Views Asked by At

About my problem:

I create instances of a class several times, each time my frontend sends a message to my backend.(This can't be changed either).

Now the instances have to fulfill the following:

  1. The dictionary must not be lost each time the instance is created.
  2. The instances have different dictionaries.

Do you know how I can realize this?

Until now I have this in my class:

class ScheduleOptimizeNew:
    data = {
        "Station": {
        }}
    def __init__(self, cfgpath):
        self.cfg = cfgpath

and here its get created in my app.py:

scheduleroptimizernew= ScheduleOptimizeNew(CFGPath) 

Thank you very much!

1

There are 1 best solutions below

0
Daviid On

Here's some code so you can understand Class Variables vs Instance Variables:

Class Variables

class ScheduleOptimizeNew:
    data = "Shared between instances"
    def __init__(self):
        pass

instance1 = ScheduleOptimizeNew()
instance2 = ScheduleOptimizeNew()
instance3 = ScheduleOptimizeNew()

print("\n------------------")
print("Original")
print(instance1.data)
print(instance2.data)
print(instance3.data)
print("------------------")

instance2.data = "Modified value"

print("\n------------------")
print("Modified through instance")
print(instance1.data)
print(instance2.data)
print(instance3.data)
print("------------------")


ScheduleOptimizeNew.data = "Modified value"


print("\n------------------")
print("Modified through class")
print(instance1.data)
print(instance2.data)
print(instance3.data)
print("------------------")

Output:

------------------
Original
Shared between instances
Shared between instances
Shared between instances
------------------

------------------
Modified through instance
Shared between instances
Modified value
Shared between instances
------------------

------------------
Modified through class
Modified value
Modified value
Modified value
------------------

Instance Variables

class ScheduleOptimizeNew:
    def __init__(self):
        self.data = "Specific to each instance"
        pass

instance1 = ScheduleOptimizeNew()
instance2 = ScheduleOptimizeNew()
instance3 = ScheduleOptimizeNew()

print("\n------------------")
print("Original")
print(instance1.data)
print(instance2.data)
print(instance3.data)
print("------------------")

instance2.data = "Modified value"

print("\n------------------")
print("Modified through instance")
print(instance1.data)
print(instance2.data)
print(instance3.data)
print("------------------")


ScheduleOptimizeNew.data = "Modified value"


print("\n------------------")
print("Modified through class")
print(instance1.data)
print(instance2.data)
print(instance3.data)
print("------------------")

Output

------------------
Original
Specific to each instance
Specific to each instance
Specific to each instance
------------------

------------------
Modified through instance
Specific to each instance
Modified value
Specific to each instance
------------------

------------------
Modified through class
Specific to each instance
Modified value
Specific to each instance
------------------