Skip to main content
 首页 » 编程设计

Python 函数 : Pass global variables if only accessing them

2025年05月04日9artech

我正在尝试了解 python 中的最佳实践。如果我定义一个函数来访问(但不更改)全局变量,通常不需要在函数中将变量指定为全局变量。但是将全局变量传递给函数会更快吗?我问是因为我遇到了一些关于查找全局变量成本的引用资料,但我不确定我是否理解。例如:

def f1(localList): 
    for element in localList: 
        if element in globalSet: 
            pass #do stuff. 
 
def f2(localList, localSet): 
    for element in localList: 
        if element in localSet: 
            pass #do stuff. 
 
globalList = <arbitrary list> 
globalSet  = <arbitrary set> 
 
f1(globalList) 
f2(globalList, globalSet) 

与 f1 相比,f2 通常被认为是更快/更好/更“pythonic”的方法吗?

请您参考如下方法:

如果 globalList 和 globalSet 数据与函数紧密绑定(bind),我会使用类并将这些列表定义为类属性,将那些函数定义为静态方法(或实例方法) ,无论我需要什么)