Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样做一个“a”字;改变;python中的属性?[请关闭]_Python_Oop - Fatal编程技术网

我怎样做一个“a”字;改变;python中的属性?[请关闭]

我怎样做一个“a”字;改变;python中的属性?[请关闭],python,oop,Python,Oop,(已编辑)我正在尝试创建一个具有属性的对象,如果您这样做,例如object.add1,它将向属性添加一个属性,因此如果再次调用object.attribute,它将返回+1 object.attribute >>> 1 object.add1 >>> object.attribute >>> 2 我首先尝试了一种简单的方法: self.attribute = str(value + 1) 不起作用 然后我尝试了一种使用setattr()函

(已编辑)我正在尝试创建一个具有属性的对象,如果您这样做,例如object.add1,它将向属性添加一个属性,因此如果再次调用object.attribute,它将返回+1

object.attribute
>>> 1
object.add1
>>>
object.attribute
>>> 2
我首先尝试了一种简单的方法:

self.attribute = str(value + 1)
不起作用

然后我尝试了一种使用setattr()函数的方法

看起来像这样:

class add1:
    def __init__(self, val):
        self.status = val
        self.change = setattr(self, str(val), str(val + 1))
也不管用。我在网上找不到任何资源,因此如何才能使其正常工作?

您可以定义一种方法:

class adder示例:
定义初始值(self,val):
self.value=val
def add1(自我):
self.value+=1
example=AddExample(1)
打印(示例值)#打印1
示例add1()
打印(示例.值)#打印2

进一步阅读:

以下内容适用于你的问题,但是肯定有更好的方法来实现你想要做的事情——尽管很难看出你想要实现什么

>>> class adder():
    def __init__(self):
        self.attribute = 1
    @property
    def add1(self):
        self.attribute += 1

>>> object = adder()
>>> object.attribute
1
>>> object.add1
>>> object.attribute
2
>>> 

对不起,我不明白你想要什么,为什么。你为什么认为你想要这样做?也许你可以分享你的实际用例,我们可以建议一个更惯用的python解决方案。似乎您想用
add
方法定义一个类。为什么不简单地使用
对象。add(1)
?尝试定义方法!