编程语言
首页 > 编程语言> > python – 我可以在函数内部编写一个函数,还是在全局框架中编写它们?

python – 我可以在函数内部编写一个函数,还是在全局框架中编写它们?

作者:互联网

参见英文答案 > Nested Function in Python                                    6个
这不是一个复杂的问题,但我找不到明确的答案.

例如,如果我想在数字列表中找出素数的数量:

def count_prime(lst):
    """lst is a list of integers"""

    def isPrime(n):
        return all(n % div != 0 for div in range(2, int(n**0.5) + 1)) if n > 1 else False

    result = 0
    for num in lst:
        if isPrime(num):
            result += 1

    return result

这看起来很简单,但我把isPrime(n)放在main函数里面.

它与以下方面相比如何:

def isPrime(n):
    return all(n % div != 0 for div in range(2, int(n**0.5) + 1)) if n > 1 else False

def count_prime(lst):
    """lst is a list of integers"""

    result = 0
    for num in lst:
        if isPrime(num):
            result += 1

    return result

我的问题是:它有什么不同吗?哪一个更受欢迎?

解决方法:

我认为这两种方法都是有效的. isPrime非常小,因此可以轻松嵌入.如果要重用该函数,则全局定义它是有意义的.

标签:python,function,nested-function
来源: https://codeday.me/bug/20190710/1425852.html