编写一个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
我希望在两次调用该函数后,该字符串将被演化两次。 但是在第一次实例之后,实例仍然保持不变。
答案 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