python - 从python中的外部函数访问类内的变量
问题描述
我需要在某些条件下清除列表,并且包含列表的变量位于类函数内。我需要从类函数外部访问列表。
Class A:
def insideclass(self):
values=[]
for i in range(10):
values.append(func())
def func():
if datetime.time.now()=="2021-06-25 10:15:52.889564":
values.clear()
return datetime.time.now()
classvariable=A()
classvariable.insideclass()
我不想使用全局变量,因为我在类中有不同的方法具有相同的变量名。
解决方案
values
通过将列表作为参数传递来更新:
class A:
def insideclass(self):
values=[]
for i in range(10):
func(values)
def func(values):
now = datetime.time.now()
if now == "2021-06-25 10:15:52.889564":
# You can't compare a datetime to a string...
values.clear()
values.append(now)
如果满足条件并在类方法中执行清除,则可以抛出异常
class A:
def insideclass(self):
values=[]
for i in range(10):
try:
values.append(func())
except:
values.clear()
def func():
now = datetime.time.now()
if now == "2021-06-25 10:15:52.889564":
raise Exception('This should be a more specific error')
else:
return now