python - 在 python 函数中定义常量的最佳方式

标签 python functional-programming

这可能是一个比实际问题更理论化的问题,因为它不会对程序的运行时间产生重大影响。至少在我的情况下不是。

我收到了一些导入不同(“自制”)函数的 python 代码。一个函数(称为 func)被主脚本(称为 ma​​in)调用了 5 次。

func 函数的开头定义了很多常量。例如:

    import numpy as np
    def func(x,y,z):
        c0 = np.array([1,2,3])
        c1 = np.array([1,2,3])
        c2 = np.array([1,2,3])
        c3 = np.array([1,2,3])

        #do stuff with variables x,y,z
        #return stuff

我想知道:调用这个函数时,常量c0,...,c3是每次调用函数时定义的,还是在运行ma​​in<时编译为字节码时“固定”的/strong> 脚本,以便它们只定义一次?

最佳答案

c0c1 等的范围仅限于func 方法。因此,每次调用该函数时,这些变量都会被初始化

如果希望它们只初始化一次,然后每次调用时都在func中使用,可以在func方法外定义:

import numpy as np

c0 = np.array([1,2,3])
c1 = np.array([1,2,3])
c2 = np.array([1,2,3])
c3 = np.array([1,2,3])

def func(x,y,z):

    #do stuff with variables x,y,z
    #return stuff

关于python - 在 python 函数中定义常量的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431311/

相关文章:

python - 如何使用 python 查询 XHTML?

python - 如何撤消 pandas 数据帧上的列聚合

types - QueΛ的投影算子是什么类型?

python - 如何减少 lambda 表达式中辅助函数的使用?

javascript - 检查柯里化(Currying)函数是否仍需要更多参数

python - 合并 Pandas 2 DataFrame,具有不同的行数和列数

python - 这个时间序列是否平稳?

Python 正则表达式匹配文字星号

performance - 列表理解中的性能(处理时间)影响因素是什么?

scala - Scala中的上三角矩阵