Python pycharm **kwargs

pycharm 报错:maximum recursion depth exceeded while getting the repr of an object
怎么解决

def print_info(**kwargs):
    print(kwargs)

    print_info(Tom=18,Lily=13)
    print_info(Tom=18,Lily=12,Anna=16)
data = {
    "Tom":18,
    "Lily":12,
    "Jin":20
}
print_info(**data)

这样

def print_info(**kwargs):
    print(kwargs)
 
print_info(Tom=18,Lily=13)
print_info(Tom=18,Lily=12,Anna=16)
data = {
    "Tom":18,
    "Lily":12,
    "Jin":20
}
print_info(**data)

这个错误是指你的递归深度超过了最大值。
这可能会有两个原因造成,一个就是深度真的太大了,可以通过调整最大的递归深度来解决:

import sys

sys.setrecursionlimit(10000)  # 设置最大递归深度为10000

# 递归函数代码

另一种就是你的递归函数没有设置终止条件,或者终止条件设置不正确,那么你的递归就无限制的递归下去,直到递归深度超过最大值。

你的情况,就是没有设置终止条件。

你的代码可以改成这样:

def print_info(**kwargs):
    print(kwargs)

data = {
    "Tom":18,
    "Lily":12,
    "Jin":20
}
print_info(**data)

data = {
    "Tom":18,
    "Lily":13
}
print_info(**data)

data = {
    "Tom":18,
    "Lily":12,
    "Anna":16
}
print_info(**data)

你要完成的功能根本不需要递归,即使强用递归也会显得方法很难看。