私はJetBrains IntelliJのファンです。PyCharmがPythonに提供するサポートを楽しんでいます。しかし、私はPyCharm 2017.2.2でPythonコードを正しくリファクタリングしようとするのに困っています。私は2つのケースで問題を実証できます。最初のケースは動作しますが、2番目のケースは動作しません。これは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
を示唆ボックス、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
の代わりに、私は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