【发布时间】:2013-01-18 05:40:20
【问题描述】:
这不是我正在做的任何事情,它只是一些测试代码,因为我只是在学习类方法并且很烂。但是说我有以下代码
class Test(int):
def __init__(self,arg):
self = arg
def thing(self):
self += 10
然后去, foo=Test(12) 将 foo 设置为 12。但是我想要它,所以当我这样做时,foo.thing(), foo 增加了 10。到目前为止,使用 foo.thing() 只是将它保持在 12。我将如何更改此代码以执行此操作。
【问题讨论】:
-
分配
self = arg对您的新foo实例没有任何作用(它重新分配self,它不会更新int子类实例)。请改用__new__方法;您可以安全地忽略__init__。 -
int是一个不可变的,你不能神奇地将它变成一个可变的类。
标签: python class methods int self