Я видел два разных объекта Python, используемых для группировки произвольных данных: пустые классы и функции.
def struct():
pass
record = struct
record.number = 3
record.name = "Zoe"
class Struct:
pass
record = Struct()
record.number = 3
record.name = "Zoe"
Даже если класс не пуст, он работает до тех пор, пока он определен во время выполнения.
Но когда я стал дерзким и пытался сделать это со встроенными функциями или классами, это не сработало.
record = set()
record.number = 3
AttributeError: 'set' object has no attribute 'number'
record = pow
pow.number = 3
AttributeError: 'builtin_function_or_method' object has no attribute 'number'
Существует ли принципиальное различие между встроенными и "настраиваемыми" классами и функциями, которые учитывают это поведение?