我有一个使用变量来创建字符串的类:
av = "Core/" + cuname + ">> "
在类中的特定方法中,cuname
变量已更改。但是,在提示时,av
变量仍将使用之前的值。有没有办法重新初始化"变量,以便它获得新的cuname
值?
答案 0 :(得分:2)
由于您有一个班级,而av
是一个变量,请将其设为班级的property
class MyClass:
def __init__(self, name):
self.cuname = name
@property
def av(self):
return "Core/" + self.cuname + ">> "
obj = MyClass("thefourtheye")
print(obj.av)
# Core/thefourtheye>>
obj.cuname = "awesome"
print(obj.av)
# Core/awesome>>
av
是只读属性。因此,无论cuname
次更改多少次,av
将始终为字符串提供当前cuname
值。因为,你将av
作为属性,它仍然可以像变量一样使用。
答案 1 :(得分:1)
如果使用函数而不是变量,则始终获取最新值:
class myclass():
def av(self):
return "Core/" + cuname + ">> "
因此,您现在不使用av,而是使用self.av()。
答案 2 :(得分:0)
是的,您只需重新执行相同的声明:
av = "Core/" + cuname + ">> "
试。