gpt4 book ai didi

Python 大函数多变量(重构)

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:18 25 4
gpt4 key购买 nike

我的脚本中有一个大型函数,其中包含程序的大部分逻辑。

有一次,它曾经跨越约 100 行,然后我尝试将其重构为多个较小的函数。然而,我有许多局部变量最终会在较小的函数中被修改,我需要一些方法来在较大的函数范围内跟踪它们。

例如,它看起来像

def large_func():
x = 5
... 100 lines ...

def large_func():
x = 6
small_func_that_will_increment_x()
small_func()
....

什么是处理这个问题的 pythonic 方法?

我能想到的两种方法是:

1) 全局变量 --- 可能会变得困惑,因为我有很多变量2) 使用字典来跟踪它们,例如

tracker = {
'field1' : 5
'field2' : 4
}

而是对字典进行修改。

有没有我可能忽略的不同方法来做到这一点?

最佳答案

没有更多信息,很难知道这是否合适,但是……

一个对象就是一个命名空间。特别是,您可以将这些局部变量中的每一个都转换为对象的属性。例如:

class LargeThing(object):
def __init__(self):
self.x = 6
def large_func(self):
self.small_func_that_will_increment_x()
self.small_func()
# ...
def small_func_that_will_increment_x(self):
self.x += 1

无论 self.x = 6 属于 __init__ 还是在 large_func 的开头,或者这是否是一个好主意,取决于所有这些变量的实际含义,以及它们如何组合在一起。

关于Python 大函数多变量(重构),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com