So verwenden Sie Python -Deskriptoren mit default_factory in DataClass
Posted: 07 Apr 2025, 00:01
Wie kann ich Deskriptoren mit DataClass und default_factory arbeiten lassen? Im folgenden Beispiel: < /p>
Der erste Druck funktioniert ordnungsgemäß und zeigt den Standardwert an. 1. Wenn man die erste Version von Attribut1 in Foo () () und in der zweiten Ausstattung ansetzt, gibt der erste Druck ein Objekt anstelle des Attributwerts.>
Code: Select all
from dataclasses import dataclass, field
import numpy as np
class A():
a = np.arange(2)
class Verbose_attribute(A):
def __get__(self, obj, type=None) -> object:
print("accessing the attribute to get the value")
return self.a[-1]
def __set__(self, obj, value) -> None:
print("accessing the attribute to set the value")
self.a[-1]=value
#a = np.arange(2)
@dataclass
class Foo():
attribute1: Verbose_attribute = Verbose_attribute()
#attribute1: Verbose_attribute = field(default_factory=lambda: Verbose_attribute())
my_foo_object = Foo()
print(my_foo_object.attribute1)
my_foo_object.attribute1 = 3
print(my_foo_object.attribute1)