【发布时间】:2013-05-12 18:36:02
【问题描述】:
我从 int 继承了一个类,我正在尝试创建一个方法来增加我的实例在方法中的值:
class MyInt(int):
def my_method(self, value):
#do_stuff()
self += value
我知道你不能在方法内将 self 设置为其他任何东西,它肯定会在方法内发生变化,但实际实例不会改变。 但是,我不知道如何解决这个问题,以便实际实例会发生变化,那么它甚至可能吗?如果是,那么如何?
【问题讨论】:
-
你想改变一个不可变的对象?
-
@snakesandcoffee 而是找到一种解决方法来实现类似于可变对象的行为...
-
“我从
int继承了一个类并且...”不!不要那样做!大多数时候,内置子类化是错误的做事方式。他们将来会咬你(你可以看到他们已经开始了)。子类化内置是一种强大的力量,但强大的力量伴随着巨大的责任!!! (顺便说一句:AFAIK 你不能从 python 做你想做的事情。如果有办法肯定会很讨厌......)
标签: python class immutability increment addition