python object does not support item assignment

先看以下代码:

class Animal(object):
        def __init__(self, name):
                self.name = name


a1 = Animal("panda")

a1['age'] = 12

当执行到

a1['age'] = 12

报错:

Traceback (most recent call last):
File “test.py”, line 13, in <\module>
a1[‘age’] = 12
TypeError: ‘Animal’ object does not support item assignment

说明a1对象不可这样进行赋值操作;

解决办法:

需要为类定义__setitem__方法;

class Animal(object):
        def __init__(self, name):
                self.name = name


        def __setitem__(self, k, v):
                self.k = v

        def __str__(self):
                return "name:%s, %s" % (self.name, self.k)


a1 = Animal("panda")

a1['age'] = 12
print a1

再次执行,
output:

name:panda, 12

打印name以及刚赋值的12。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值