我是JetBrains IntelliJ的粉丝,现在享受PyCharm为Python提供的支持。但是我在使用PyCharm 2017.2.2正确地重构一些python代码时遇到了麻烦。我可以用两种情况来证明这个问题,第一种情况有效但第二种情况不适用。
工作片段:
import pandas as pd
def main():
c = 2
a = pd.Series([1,2,3])
b = a.apply(lambda x:
x+1
)
print (b)
main()
我可以选择三行
b = a.apply(lambda x:
x+1
)
当我重构>提取物>方法,我提供了一个对话框,建议a
作为参数,b作为返回值。当我接受时,结果是:
import pandas as pd
def main():
c = 2
a = pd.Series([1,2,3])
b = method_name(a)
print (b)
def method_name(a):
b = a.apply(lambda x:
x + 1
)
return b
main()
现在,我做了一个改变。我使用x+1
而不是lambda中的x+c
。我希望c
将被识别为新函数的参数,但事实并非如此。结果,我最终得到了这段代码,但这不起作用:
import pandas as pd
def main():
c = 2
a = pd.Series([1,2,3])
b = method_name(a)
print (b)
def method_name(a):
b = a.apply(lambda x:
x + c
)
return b
main()
我有什么问题吗?
答案 0 :(得分:0)
你只将一个值传递给method_name,所以c代表什么都没有。