Bak*_*riu 1 python refactoring signature variadic-functions rope
我正在使用eric4及其绳索插件来重构一些代码.我有很多方法,其签名使用*args和**kwargs语法.我想更改这些签名删除此参数.
我尝试过使用Refactoring>Refactoring>Change Method Signature但不会删除*args和**kwargs参数.
我想知道这是否是绳索本身的限制,或者它是否是eric的插件不支持此功能.
你为什么要删除*args和**kwargs?要重构这些函数,重构库需要进行相当多的内省才能知道正确的参数.
例如,您将如何重构以下函数:
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
Run Code Online (Sandbox Code Playgroud)
你可以把它变成:
def f(a, b, c=3, d=4):
print a, b, c, d
Run Code Online (Sandbox Code Playgroud)
它需要相当多的代码分析才能做到这一点,对于实际功能来说,它更难.位置和关键字参数的数量可以变化(例如,函数可以迭代args),这使得难以确定正确的函数参数.
除非有确实需要,我会保持*args和**kwargs并专注于其他重构的努力.
| 归档时间: |
|
| 查看次数: |
1156 次 |
| 最近记录: |