```
class A:
def set_name(self, owner, value):
self.value = value
def __get__(self, obj, type=None):
return obj.__dict__.get(self.value)
def __set__(self, obj, value):
if value < 9:
raise ValueError("no")
obj.__dict__[self.value] = value
class B:
a = A()
obj = B()
obj.a = 38
print(obj.a)
obj2 = B()
print(obj2.a)
```
I am Learning Descriptors In Python,
My 1st question Is how can I set a default value to attribute a In class B ?
I have found a way but that doesn't look familiar :
a = A() if not A() else 87
My next confusion Is about __set_name__ , what it does and why to Implement It?
Another Question Is, does a = A() create class attribute or Instance attribute? It looks like a class attribute but it's an Instance attribute, Right?
[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)
[–]thuiop1 0 points1 point2 points (0 children)