Python 递归过程中变量的使用?

Python 递归过程中变量的使用?,python,variables,recursion,scope,Python,Variables,Recursion,Scope,因此,我试图解决一个问题,这个问题涉及到寻找元组的最大深度(例如,深度(('a',('b','c','d'),('e','f','g'))应该返回2,深度('a',('b',),('c',('d',('e',),('g','h','I'))应该返回4。 我试图使用递归来解决这样一个问题:我使用一个计数器“c”来跟踪每个元组(在主元组内)的深度。问题是,我得到了以下错误,赋值前引用的局部变量“s” 我的代码类似于: s=0 def depth(tuple): do something

因此,我试图解决一个问题,这个问题涉及到寻找元组的最大深度(例如,深度(('a',('b','c','d'),('e','f','g'))应该返回2,深度('a',('b',),('c',('d',('e',),('g','h','I'))应该返回4。 我试图使用递归来解决这样一个问题:我使用一个计数器“c”来跟踪每个元组(在主元组内)的深度。问题是,我得到了以下错误,赋值前引用的局部变量“s”

我的代码类似于:

s=0
def depth(tuple):
     do something
     s=s+1
     depth(some_nested_tuple)
     return

我做错了什么?

如果您想在函数中使用
全局
变量,您必须这样做:

s=0
def depth(tuple):
     # do something
     global s
     s=s+1
     return depth(some_nested_tuple)