Python 如何制作对象列表';s属性并从列表中更改它?

Python 如何制作对象列表';s属性并从列表中更改它?,python,Python,我想制作一个对象属性列表,并从列表中修改它们 比如: class new_class(): def __init__(self, number): self.number = number a = new_class(2) b = [a.number] b[0] = 1 # want it to be 1 print(a.number) 最简单的解决方案是将实例存储在列表中。如果您不想编写b[0]。number,则其他解决方案可能需要为列表指定一个类。 将实际属性存

我想制作一个对象属性列表,并从列表中修改它们

比如:

class new_class():
    def __init__(self, number):
        self.number = number

a = new_class(2)
b = [a.number]
b[0] = 1

# want it to be 1
print(a.number)

最简单的解决方案是将实例存储在列表中。如果您不想编写
b[0]。number
,则其他解决方案可能需要为列表指定一个类。 将实际属性存储在列表中并更改实例是不可能的,因为您正在存储int类型的变量,而不引用实例。但是,您可以存储一个包含引用实例+属性的对象,尽管我认为存储实例本身会更好

class新建_class():
定义初始化(自身,编号):
self.number=number
a=新的_类(2)
b=[a]
b[0]。编号=1
#希望它是1
打印(a.编号)

最简单的解决方案是将实例存储在列表中。如果您不想编写
b[0]。number
,则其他解决方案可能需要为列表指定一个类。 将实际属性存储在列表中并更改实例是不可能的,因为您正在存储int类型的变量,而不引用实例。但是,您可以存储一个包含引用实例+属性的对象,尽管我认为存储实例本身会更好

class新建_class():
定义初始化(自身,编号):
self.number=number
a=新的_类(2)
b=[a]
b[0]。编号=1
#希望它是1
打印(a.编号)

也许我们最近能做的就是:

class new_class():
    def __init__(self, number):
        self.number = number

a = new_class(2)
attrs = ['number']
def b(index, value):
    a.__dict__[attrs[index]] = value
b(0, 1)

# want it to be 1
print(a.number)

也许我们最近能做的就是:

class new_class():
    def __init__(self, number):
        self.number = number

a = new_class(2)
attrs = ['number']
def b(index, value):
    a.__dict__[attrs[index]] = value
b(0, 1)

# want it to be 1
print(a.number)

你不能真的那样做
a.number
不是一个神奇的引用,它只是解析为值(在本例中为2)。您无法真正做到这一点
a.number
不是一个神奇的引用,它只是解析为值(在本例中为2)。