Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cb02363

Browse files
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

Lines changed: 38 additions & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /