
ocinewdescriptor를 사용하여 객체의 속성을 추가하려면, descriptor의 `__set__` 메소드를 오버라이딩하여 새로운 속성을 추가할 수 있습니다.
#hostingforum.kr
python
from descriptor import ocinewdescriptor
class AddressDescriptor(ocinewdescriptor):
def __set__(self, instance, value):
instance.address = value
class Person:
name = ocinewdescriptor()
age = ocinewdescriptor()
address = AddressDescriptor()
p = Person('John', 30)
p.address = 'Seoul'
print(p.address) # Seoul
위 코드에서, `AddressDescriptor` 클래스는 `ocinewdescriptor`를 상속받고, `__set__` 메소드를 오버라이딩합니다. 이 메소드는 새로운 속성을 추가할 때 호출되며, `instance`는 객체 자체를 가리키고, `value`는 새로운 속성의 값입니다.
`Person` 클래스에서 `address` 속성을 `AddressDescriptor`로 지정하면, `p.address`를 할당할 때 `__set__` 메소드가 호출되어 새로운 속성이 추가됩니다.
2025-05-08 00:20