Python 类变量更新
我构建了一个类来处理许多采用公共输入的不同函数。然而,我遇到了这样的情况,通过Python 类变量更新,python,Python,我构建了一个类来处理许多采用公共输入的不同函数。然而,我遇到了这样的情况,通过self反馈的一个变量需要更改。我该怎么做?这是一个例子: class Test: def __init__(self, test_variable): self.test_var = test_variable @property def some_function(self): if self.test_var < 0: se
self
反馈的一个变量需要更改。我该怎么做?这是一个例子:
class Test:
def __init__(self, test_variable):
self.test_var = test_variable
@property
def some_function(self):
if self.test_var < 0:
self.test_var = 'New Output' #this is the line that I can't get
#get to work and I was hoping to update it here
#so I could use it in later functions
return self.test_var
类测试:
def u u初始(自,测试变量):
self.test\u var=测试变量
@财产
定义某些_函数(自):
如果自检变量<0:
self.test_var='New Output'#这是我找不到的行
#开始工作,我希望在这里更新它
#所以我可以在以后的函数中使用它
返回自测试变量
谢谢大家! 您应该删除
@property
属性。然后,您可以通过执行x.test\u var=5
来设置它。例如:
class Test:
def __init__(self, test_variable):
self.test_var = test_variable
def some_function(self):
if self.test_var < 0:
self.test_var = 'New Output' #this is the line that I can't get
#get to work and I was hoping to update it here
#so I could use it in later functions
return self.test_var
x = Test(-1)
print(x.some_function())
x.test_var = 5
print(x.some_function())
你到底遇到了什么问题?据我所知,你发布的代码完全符合你的预期。请注意,如果你想要
self.test\u var
,你可以调用self.some\u function
。除了不能多次调用某个函数之外,test\u variable
最初是负数,有什么问题吗?test\u var
应该包含字符串还是数字?为其分配字符串后,将其与数字进行比较将导致错误。我希望将该字符串重新分配为字符串。也许我把它做得太简单了,不能成为一个有效的例子。我收到的错误是“无法分配属性”错误。您已从方法中删除了@属性
装饰程序。我认为这可能是他/她有问题的地方。
New Output
5