小さなスクリプト(これは部分的です)を記述したので、完全なコードは複数の.cファイルを検索し、その中のパラメータが使用されているかどうかを確認する必要があります。この特定のコードは、行からパラメータを取得する責任があるため、.cファイルで同じパラメータ名とその値を検索するために使用できます。メソッドがブランクになっていても、メソッド内で空でない場合
問題は、最初の瞬間(takeTheParam
メソッド内)がコマンドプロンプトで正しいパラメータを示し、2番目の印刷インスタント(takeTheParam
メソッドの呼び出し後)がコマンドプロンプトで空白を表示することです。
import os
theParam = ""
def takeTheParam(row, theParam):
for item in row.split():
if "_" in item:
theParam = item
print theParam
return theParam
for root, dirs, files in os.walk('C:/pathtoworkdir'):
for cFile in files:
if cFile.endswith('.c'):
with open(os.path.join(root, cFile), 'r') as this:
for row in this:
if '=' in row:
takeTheParam(row, theParam)
print theParam
while theParam not in usedParameters: # Has the param already been checked?
value(row, savedValue, statements, cur)
searchAndValueExtract(theParam, parameterCounter, compareValue)
while isEqual(savedValue, compareValue, equalValueCounter):
searchAndValueExtract(theParam, parameterCounter, compareValue)
else:
# If IsEqual returns false, that means a param has different values
# and it's therefore being used
usedParameters.append(theParam)
pass
私はこれがなぜ起こるかを把握するのpythonでの十分な経験を得たhave't、私はtheParam
は法の外で使用されるとき、それがコードの先頭にそれの定義から取得した値(theParam = ""
だと思われます)、これが当てはまる場合、なぜ私は考えがわかりません。それは永遠に""
をとどまるよう
変数の似た名前と関数宣言で使用されている名前はあなたを欺くことです。 http://stackoverflow.com/a/292502/2564301 – usr2564301