将对象属性添加到列表中的所有内容

时间:2017-01-28 03:37:58

标签: python

我是python的新手并且遇到了我无法解决的问题。

我在一个名为practice

的文件中有一个Network类和一个Person类
import uuid

class Network:
_people = []

def create_person(self):
    person = Person()
    self._people.append(person)
    return person

def add_person_property(self, person, prop, value):
    index = self._people.index(person)
    self._people[index].add_property(prop, value)


class Person:
_prop = {}
_relations = {}

def __init__(self):
    self.pid = uuid.uuid4()

def add_property(self, prop, value):
    self._prop.update({prop: value})

我还有另一个文件用于测试导入上述内容的位置

from practice import *

n = Network()
p1 = n.create_person()
p2 = n.create_person()
p3 = n.create_person()

n.add_person_property(p1, 'name', 'tom')
n.add_person_property(p3, 'name', 'john')
n.add_person_property(p2, 'name', 'bob')

每次调用n.add_person_property时,给出的prop和value将转到每个人的_prop字典而不是列表中指定的person对象。

以下是add_person_property的一次运行后调试变量的屏幕截图。

enter image description here

0 个答案:

没有答案