python - 如何从递归 Python 函数返回值?

我正在编写一个密码生成器,它接受一个字符串(网站的 URL)并将其处理成一个安全的密码,该密码不能根据网站的名称进行回溯。

在部分代码中,我创建了一个如下所示的递归函数:

def get_number(n = 0, nums = ''):
    for i in range(0, len(url)):
        #both n and nums are changed
    if len(nums) < num_length:
        get_number(n, nums)
    else:
        print(nums)
        return(nums)

...

print(get_number())

我希望 nums输出两次,因为我在 else block 中打印它并稍后打印返回。但是,如果它确实通过递归循环,nums从 else block 打印,函数返回 None .如果if len(nums) < num_length第一次为 false,然后返回正确的值。

为什么会返回None ,如果我确认它返回的对象实际上不是 None之前的那一行?

我对 Python 有点陌生;它以不同方式处理递归吗?

相关文章:

python - Flask:重定向(url_for())返回html但不加载页面

haskell - 让 Multiline haskell 函数在 ghci 中工作

php - 匹配来自所有语言php的字母的正则表达式

r - 按组移动 data.table 中的一列列表

java - 如何确定一个数字中的所有设置位是否也在另一个数字中设置?

java - 在露天。如何创建临时文件进行测试?

r - 计算从原点到R中每个时间点的梯形积分

matlab - 是否有编写 matlab 文件开头注释的标准?

laravel - vagrant up 后,我对 Homestead.yaml 的更改未反射(re

c#-6.0 - 有没有办法将 C# 6 的字符串插值与多行字符串一起使用?