from min_artiq import * from numpy import int32 @nac3 class Demo: attr1: KernelInvariant[int32] = 2 attr2: int32 = 4 attr3: Kernel[int32] @kernel def __init__(self): self.attr3 = 8 @nac3 class NAC3Devices: core: KernelInvariant[Core] attr4: KernelInvariant[int32] = 16 def __init__(self): self.core = Core() @kernel def run(self): Demo.attr1 # Supported # Demo.attr2 # Field not accessible on Kernel # Demo.attr3 # Only attributes can be accessed in this way # Demo.attr1 = 2 # Attributes are immutable self.attr4 # Attributes can be accessed within class obj = Demo() obj.attr1 # Attributes can be accessed by class objects NAC3Devices.attr4 # Attributes accessible for classes without __init__ if __name__ == "__main__": NAC3Devices().run()