因此,在尝试理解类时,我一直在研究类,并且遇到了让我的方法记住以前给定参数的需求。这是因为我想在不传递新参数的情况下触发方法,而只是使用以前的相同参数。 因为我是从其他地方触发的,所以我认为如果没有传递新的参数,尝试让类记住变量并使用内存会更容易。
我最终得到的基本上是这样的:
class someclass:
def test(self, x=None):
if x:
self.x = "yes " + str(x)
try:
print(self.x)
except AttributeError:
pass
a = someclass()
a.test()
a.test()
a.test(5)
a.test()
a.test()
因此前两次调用self.x
尚未定义,因此它可以通过。在此之后的任何时间,它都会记住仅给出一次的5。
所以我的问题主要是,是否有一种更简单/更好的方式来编写此代码块,而且还有这种不好的做法会在以后给我带来麻烦。
答案 0 :(得分:0)
您也可以使用类属性来实现。这里,我们使用类属性x
首先存储我们的默认值,然后存储先前输入的值:
代码:
class someclass:
x = None
def test(self, x=x):
if x:
someclass.x = "yes " + str(x)
if someclass.x:
print(someclass.x)
a = someclass()
a.test()
a.test()
a.test(5)
a.test()
a.test()