一文钱难倒英雄汉之【AttributeError】

in #python6 years ago

在工作中我们经常会碰到一些小问题,这些小问题在解决后来看都很简单容易,但是如果不知道解决方案可能得花费一天甚至几天的时间,解决过程经常让人抓狂,试图借“一文钱难倒英雄汉”这个标题来记录下这些问题和解决方案。

文章尽量短小精悍,不求甚解,看了能解决就好。

AttributeError: can't set attribute

最近改python-utransnet库,以前正常运行的突然出现以下错误:

class TransnetNodeRPC(GrapheneWebsocketRPC):

    def __init__(self, *args, **kwargs):
        super(TransnetNodeRPC, self).__init__(*args, **kwargs)
        self.chain_params = self.get_network()

在赋值self.chain_params时出现以下错误:

AttributeError: can't set attribute

解决办法

开始百思不得解,google了一下都是说property的问题,可是也没用property啊,而且在某些机器上能用,某些机器上不能用,仔细查了半天才考虑可能是基类GrapheneWebsocketRPC的问题,再找到基类库代码一看用到 getattr 了,那八成是这引起的,改成如下方式即可。

    @property
    def chain_params(self):
        return self._chain_params

    @chain_params.setter
    def chain_params(self, val):
        self._chain_params = val
Sort:  

你今天过的开心吗?新人吗?《steemit指南》拿一份吧,以免迷路; 另外一定要去 @team-cn 的新手村看看,超级热闹的大家庭。假如我的留言打扰到你,请回复“取消”。

第一次玩steemit,请教一下,这里发图用的是外部图床还是steemit自己的数据库?这种分布式的博客系统发图或者视频应该很占空间的,不知道steemit怎么解决的,是要花代币才能发图呢还是免费的?

可以直接拷贝图片,然后粘贴进来,steemit的图和视频不在链上,不需要币但是需要时间得到bindwidth

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.030
BTC 58665.81
ETH 3153.57
USDT 1.00
SBD 2.44