调用上一个函数的列表问题

调用上个函数的列表该怎么写,各位大佬
因为我的下一个函数直接用的上一个列表,展示没定义,怎么办

方法一:定义一个全局变量,不管是上一个还是下一个访问的都是函数外的那个,作为改变;这种不建议使用;
这种可能存在访问不到,也不建议这么操作

lists = []
def a():
  // doSomthing
  lists = lists

def b():
  // doSomthing
  // lists 操作

方法二:将列表作为参数传给下一个函数,也就是在上一个函数的结束时调用下一个函数,将列表作为参数传给下一个函数;这样调用有限制

def a():
  lists = []
  // doSomthing
  b(lists)

def b(lists):
  // doSomthing

a()

方法三:上一个函数结束完成将列表返回,用一个变量来承载上一个方法执行结果的列表。调用下一个方法的时候直接传入列表;

lists = []
def a(lists):
  // doSomthing
  return lists

def b(lists):
  // doSomthing
  return lists

lists  = a(lists)
lists  = b(lists)