[albatross-users] Simple/Class based register?
Cameron Blackwood
korg at darkqueen.org
Tue Jul 1 16:30:28 EST 2003
Im sick of forgetting to register my classes. :-/
Can anyone see a problem with doing something like this?
(Besides speed, which is obviously going to be slower than hardcoding).
----------- 8< also.py >8 -----------
import p
class page_also1(p.AlbatrossClass): pass
class page_also2(p.AlbatrossClass): pass
----------- 8< also.py >8 -----------
----------- 8< p.py >8 -----------
class app:
def __init__(s):
startpage=None
for name,value in globals().items():
is_albatross_start= is_albatross= None
try:
if value not in [AlbatrossClass, AlbatrossStartClass]:
is_albatross_start=value.is_albatross_start_class
is_albatross= value.is_albatross_class
except: pass
# if startpage and is_albatross_start: squid=squid-donut() # error!
if is_albatross_start: startpage=name
if is_albatross: print 'I should register',name,value
print 'Start page is:',startpage
class AlbatrossClass:
is_albatross_class=1
is_albatross_start_class=0
class AlbatrossStartClass(AlbatrossClass):
is_albatross_start_class=1
class page1(AlbatrossStartClass): pass
class page2(AlbatrossClass): pass
class page3(AlbatrossClass): pass
def main():
MyApp=app()
if __name__=="__main__": main()
----------- 8< p.py >8 -----------
Running python p.py gives me
----------- 8< output >8 -----------
register page_also1 also.page_also1
register page_also2 also.page_also2
register page3 __main__.page3
register page2 __main__.page2
register page1 __main__.page1
start page is: page1
----------- 8< output >8 -----------
cheers,
cam
--
/ `Rev Dr' cam at darkqueen.org Roleplaying, virtual goth \
< http://darkqueen.org Poly, *nix, Python, C/C++, genetics, ATM >
\ [+61 3] 9809 1523[h] skeptic, Evil GM(tm). Sysadmin for hire /
---------- Random Quote ----------
There is no such thing as fortune. Try again.
More information about the Albatross-users
mailing list