Python类中如何从函数b访问函数a内的url_ls变量?
如何在Test类的b()方法中访问a()方法内的url_ls变量
你没法直接访问a()方法里定义的局部变量url_ls,因为它的作用域只限于a()内部。不过可以通过以下几种方式实现需求:
方法一:将url_ls改为实例属性
把url_ls定义为类实例的属性,这样同个实例的所有方法都能访问到它:
class Test(): def a(self,dct,res_dct,lst): self.url_ls = [] # 改为实例属性 # ... 原来的逻辑代码 return self.url_ls def b(self): # 直接通过self访问url_ls print(self.url_ls) # ... 你的其他逻辑
注意:调用b()之前要先调用过a(),否则self.url_ls会不存在,可根据需求添加判断避免报错。
方法二:调用a()方法获取返回值
因为a()本来就返回url_ls,所以在b()里直接调用a()并传入所需参数,就能拿到这个列表:
class Test(): def a(self,dct,res_dct,lst): url_ls = [] # ... 原来的逻辑代码 return url_ls def b(self): # 假设b()里能获取到dct、res_dct、lst这三个参数 dct = ... # 实际的dct值 res_dct = ... # 实际的res_dct值 lst = ... # 实际的lst值 url_ls = self.a(dct, res_dct, lst) # 现在可以使用url_ls了 print(url_ls)
如果b()里没有这些参数,可以考虑把它们也设为实例属性,或者在调用b()时传入对应值。
内容的提问来源于stack exchange,提问作者Joz
相关产品推荐
相关产品推荐

