运行代码时,是否可以在类中更新“自我”?

时间:2019-08-07 13:05:46

标签: python python-3.x

  

编写一个Python类(旋转器),其init函数将接受一个   单个附加参数,它是一个字符串;一个内部变量   (商店)将设置为该字符串。这个还有一个功能   称为Evolution的类,它将接受单个附加参数n   指定应应用多少个轮换进行存储。例如,如果   存储被“ abed”并调用evolve(l),然后存储将被更新   改为“ bcda”。如果调用了volve(l),则存储将为“ cdab”   (来自“ bcda”)。如果然后调用了Evolution(2),则存储为   “ abed”(来自“ cdab”)。 Evolve应该既更新存储,又返回   商店的更新价值。

我的代码运行得很好,除了它不能更新类“ rotater”中的“ self”对象。该问题要求更新商店,并返回商店的更新值。

class rotater:
    def __init__(self,store):
        self.store=store
    def evolve(self,n):
        shift=self.store[:int(n)]
        new_string=self.store[int(n):]+shift
        store=new_string
        return store

我希望在两次调用该函数后,该字符串将被演化两次。 但是在第一次实例之后,实例仍然保持不变。

1 个答案:

答案 0 :(得分:1)

class rotater:
    def __init__(self,store):
        self.store=store
    def evolve(self,n):
        shift=self.store[:int(n)]
        new_string=self.store[int(n):]+shift
        self.store = new_string
        return new_string

通过这种方式,您可以重新定义store属性(要定义属性,您必须将其写成正弦波self.attribute = value而不是attribute = value