나는 다음과 같습니다어떻게 변수를 인스턴스화 할 수 있습니까?
- 객체
- __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()
을 사용할 수 있습니다. 이것을 어떻게 할 수 있습니까? 내가
# 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>}}
이 방법을 제공합니다 :
__init__.py :
나는 이런 식으로 일을 할 수 있었다
objects.instancesdic['places']['Moon'].someUsefulFunction()
어느 쪽이 괜찮습니까?하지만 정말로 싶습니다. objects.Moon.someUsefulFunction()
.
TypeError: 'str' object does not support item assignment
또는 사전에 바로 키
대신Moon
인스턴스가 생성되는, 인스턴스에 변경되는 : 시도는 모든 일을
Moon
결과 중 하나에 전화를합니다.
코드가 작동했는데 이제는 내가하려는 일을하지 않는 것이 더 낫다는 것을 이해합니다. 그렇다면 사전을 고수 할 것입니다. 고맙습니다. – Alex