小编Art*_*r.V的帖子

python函数中的硬编码变量

有时,某些值/字符串在函数中是硬编码的.例如,在以下函数中,我定义了一个"常量"比较字符串并检查它.

def foo(s):
    c_string = "hello"
    if s == c_string:
        return True
    return False
Run Code Online (Sandbox Code Playgroud)

没有讨论太多关于为什么它的坏做到这一点,以及应如何在外部范围进行定义,我想知道幕后发生了什么时,它这样定义的.
是否每次调用都会创建字符串?
如果不是字符串,"hello"那么它就是列表:( [1,2,3]或者如果重要的话,列表中包含可变内容的列表)会发生同样的情况吗?

python constants python-internals

5
推荐指数
1
解决办法
3743
查看次数

有没有办法检查函数在python中是否递归?

我想为练习编写测试函数,以确保正确实现函数.
所以我想知道,有没有办法,给定一个函数"foo",来检查它是否是递归实现的?
如果它封装了一个递归函数并使用它,它也会计数.例如:

def foo(n):
    def inner(n):
        #more code
        inner(n-1)
    return inner(n)
Run Code Online (Sandbox Code Playgroud)

这也应该被认为是递归的.
请注意,我想使用外部测试功能来执行此检查.不改变函数的原始代码.

python recursion python-internals

3
推荐指数
1
解决办法
1349
查看次数

标签 统计

python ×2

python-internals ×2

constants ×1

recursion ×1