gpt4 book ai didi

python - 使用 rope 从方法签名中删除 *args 和 **kwargs

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:31 28 4
gpt4 key购买 nike

我正在使用 eric4 及其绳索插件来重构一些代码。我有许多方法,其签名使用 *args**kwargs 语法。我想更改这些签名并删除此参数。

我已经尝试使用 Refactoring>Refactoring>Change Method Signature 但这不会删除 *args**kwargs 参数。

请问这是rope本身的限制,还是eric的插件不支持此功能。

最佳答案

为什么要删除 *args**kwargs?要重构这些函数,重构库需要执行相当多的自省(introspection)以了解正确的参数。

例如,您将如何重构以下函数:

def f(*args, **kwargs):
a = args[0]
b = args[1]
c = kwargs.get('c', 3)
d = kwargs.get('d', 4)
print a, b, c, d

你可以把它变成:

def f(a, b, c=3, d=4):
print a, b, c, d

它已经需要相当多的代码分析才能做到这一点,而对于真正的功能来说,这就更难了。位置参数和关键字参数的数量可能会有所不同(例如,函数可以遍历 args),这使得确定正确的函数参数变得困难。

除非确实需要,否则我会保留 *args**kwargs 并专注于其他重构工作。

关于python - 使用 rope 从方法签名中删除 *args 和 **kwargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227892/

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