Mercurial > hg > config
annotate python/example/aspects.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 |
| parents | 0fffb3560641 |
| children |
| rev | line source |
|---|---|
|
124
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 class MakePythonLikeJavascript(object): |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 def __getattr__(self, name): |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 return undefined |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 class undefined(MakePythonLikeJavascript): |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 def __nonzero__(self): |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 return False |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 def __str__(self): |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 return 'undefined' |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
10 __repr__ = __str__ |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
11 undefined = undefined() # singleton |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
12 |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
13 if __name__ == '__main__': |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 foo = MakePythonLikeJavascript() |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
15 foo.bar = 5 |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
16 print foo.bar |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
17 print foo.fleem |
|
2f0baf81372f
added illustration of doing aspects in python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
18 print foo.fleem.flarg |
