我想创建一个dict,包含同一类的几个对象。每个对象必须是独立的。 比如:
#!/usr/bin/python3
class myReserve():
myList = dict()
def __init__(self, initName):
self.myName = initName
self.setList()
def setList(self):
if self.myName == "fruit":
self.myList[0] = "Orange"
self.myList[1] = "Lemon"
elif self.myName == "vegetable":
self.myList[0] = "Tomato"
self.myList[1] = "Carrot"
#If neither fruit nor vegetable
#myList should be empty.
myStore = dict()
myStore[0] = myReserve("fruit")
myStore[1] = myReserve("vegetable")
myStore[2] = myReserve("spices")
print(myStore[0].myList)
这张照片:
{0: 'Tomato', 1: 'Carrot'}
我以为它会打印:
{0: 'Orange', 1: 'Lemon'}
我知道对象在Python中是通过引用传递的。你知道吗
dict1 = {"var": 128}
dict2 = dict1
dict2["var"] = 0
print(dict1["var"])
将打印:
0
通过创建一个类,我想为不同的对象创建一个结构。我不理解第一个代码示例的行为。有可能用Python的方式做这样的事情吗?你知道吗
您的问题是在类级别上定义
myList
,因此myReserve
的每个实例都共享它。请尝试在myReserve.__init__
中定义它:完整代码:
相关问题 更多 >
编程相关推荐