我是JetBrains IntelliJ的粉絲,現在我很享受PyCharm爲Python提供的支持。但是我無法正確使用PyCharm 2017.2.2重構一些python代碼。我可以用兩種情況來證明問題,第一種可行,第二種不行。這是PyCharm 2017.2.2重構限制還是編碼錯誤?
工作片段:
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()
現在,我進行了更改。在lambda裏面代替x+1
,我用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()
有什麼我做錯了嗎?
「限制」可能是一個更有用的術語;它也不那麼好鬥。 – user2864740
請在這裏提交問題https://youtrack.jetbrains.com/issues/PY – user2235698
感謝您的指針,@ user2235698。我附上了這個問題https://youtrack.jetbrains.com/issue/PY-23499 – John