我有以下几点:
对象
__init__.py
define.py
define.py:
class Place:
def __init__(self,name,inhabitants):
self.name=name
self.inhabitants=inhabitants
myFunction.toStoreThings.on.db(name,inhabitants,'places')
def someUsefulFunction(self):
pass
如果运行import objects,请moon=objects.Place('Moon',[])关闭解释器,然后再次将其打开。我显然丢失了moon实例,但是我已经(u'Moon',u'[]')将其存储在数据库中。我已经__init__.py从数据库及其中检索了该信息unstring,但是我也希望将其实例化'Moon',Moon=Place('Moon',[]) 以便可以使用Moon.someUsefulFunction(),objects.Moon.someUsefulFunction()甚至在关闭解释器之后也可以使用。我怎样才能做到这一点?
我能够做到这一点:
__init__.py:
# myFunction() creates a dictionary `objdic` of the stuff in the database
# >>>objects.objdic
# {'places' : [['Moon',[]]]}
instancesdic={}
instancesdic['places']={}
instancesdic['places'][objdic['places'][0][0]]=Place(*objdic['places'][0])
这使
>>> objects.instancesdic
{'places': {'Moon': <objects.Place instance at 0x1b29248>}}
这样我可以用
objects.instancesdic['places']['Moon'].someUsefulFunction()
没关系,但我真的很想要objects.Moon.someUsefulFunction()。任何试图称呼整个事情的尝试Moon都会导致:
TypeError: 'str' object does not support item assignment
或者只是将字典中的键更改为实例,而不是Moon创建实例。
相关分类