我想通过从一部分代码中提取一个函数来重构基于脚本的Python代码。
示例:
a = 5
b = [1,2,3]
a = 6 # < this should be extracted
b = b.append(4) # < this should be extracted
print("a:", a)
print("b:", b)
使用the extract method functionality of Pycharm会导致以下结果:
a = 5
b = [1,2,3]
def method_name():
global a, b
a = 6
b = b.append(4)
method_name()
print("a:", a)
print("b:", b)
在Refactoring in PyCharm: How to extract a method?中,已经声明此方法提取不是针对Python脚本而优化的,而是针对OOP /类上下文而优化的。
我想避免使用global
,因为它不是线程安全的并且不安全(请参阅:How do I write a function with output parameters (call by reference))。
当我想将所有参数返回给调用方时,是否有任何解决方法/自动重构的替代方法,如How do I write a function with output parameters (call by reference)
中所建议的那样因此结果看起来像这样:
def method_name(a, b):
a = 6
b = b.append(4)
return a, b
a, b, = method_name(a, b)