epy.frozen

Contents

epy.frozen#

etils.epy.frozen(cls: etils.epy.py_utils._Cls) etils.epy.py_utils._Cls[source]#

Class decorator which prevent mutating attributes after __init__.

Example:

@epy.frozen
class A:

  def __init__(self):
    self.x = 123

a = A()
a.x = 456  # AttributeError

Supports inheritance, child classes should explicitly be marked as @epy.frozen if they mutate additional attributes in __init__.

Parameters:

cls – The class to freeze.

Returns:

The class object

Return type:

cls