如何重新初始化 Python 中的变量?
How to reinitialize a variable in Python?
我有一个 class,它使用一个变量来创建一个字符串,如下所示:
av = "Core/" + cuname + ">> "
在class中的一个特定方法中,cuname
变量被改变了。但是,当出现提示时,av
变量仍将使用以前的值。有没有办法 "re-initialize" 变量,以便它获得新的 cuname
值?
编辑:顺便说一句,我尝试重述变量,但它保持不变。 (我认为这是因为 class 不断使用循环)
是的,您只需重新执行相同的语句:
av = "Core/" + cuname + ">> "
再次。
如果你使用函数而不是变量,你总是得到最新的值:
class myclass():
def av(self):
return "Core/" + cuname + ">> "
因此,您现在不使用 av,而是使用 self.av()。
因为你有一个 class 并且 av
是其中的一个变量,使它成为 class
的 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
变成了 属性,它仍然可以像变量一样使用。
我有一个 class,它使用一个变量来创建一个字符串,如下所示:
av = "Core/" + cuname + ">> "
在class中的一个特定方法中,cuname
变量被改变了。但是,当出现提示时,av
变量仍将使用以前的值。有没有办法 "re-initialize" 变量,以便它获得新的 cuname
值?
编辑:顺便说一句,我尝试重述变量,但它保持不变。 (我认为这是因为 class 不断使用循环)
是的,您只需重新执行相同的语句:
av = "Core/" + cuname + ">> "
再次。
如果你使用函数而不是变量,你总是得到最新的值:
class myclass():
def av(self):
return "Core/" + cuname + ">> "
因此,您现在不使用 av,而是使用 self.av()。
因为你有一个 class 并且 av
是其中的一个变量,使它成为 class
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
变成了 属性,它仍然可以像变量一样使用。