Skip to content

Commit cb02363

Browse files
committed
computed property.py
1 parent f27d777 commit cb02363

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

computedproperty.py

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
ng computed property and setting
2+
3+
4+
class operators(object):
5+
def __getattr__(self, name):
6+
if name == 'age':
7+
return 40
8+
else:
9+
raise AttributeError(name)
10+
11+
def __setattr__(self, name, value):
12+
print('set: %s %s' % (name, value))
13+
if name == 'age':
14+
self.__dict__['_age'] = value
15+
else:
16+
self.__dict__[name] = value
17+
18+
19+
# OR BETTER WAY
20+
21+
22+
class properties(object):
23+
def getage(self):
24+
return 40
25+
26+
def setage(self, value):
27+
self._age = value
28+
29+
age = property(getage, setage, None, None)
30+
31+
32+
if __name__ == '__main__':
33+
x, y = operators(), properties()
34+
for ins in (x, y):
35+
print(ins.age)
36+
ins.age = 20
37+
print(ins._age)
38+

0 commit comments

Comments
 (0)