0
私はPythonを初めて使っています(私は主なプログラミング言語としてC++を使用しています)。私は最近、Python3で奇妙な問題に出会った。奇妙なパラメータで呼び出されるクラスメソッド
ここにはクラスCSVData
があります。コンストラクタは、path
の変数がコンストラクタに渡された場合、names
とdata
の長さを出力します。 CSVファイルをロードします。
class CSVData:
def __init__(self, path="", names=[], data=[]):
self.names = names
self.data = data
print(len(names))
print(len(data))
print("")
if path != "":
self.load(path)
def load(self, path):
f = open(path, 'r')
for i, row in enumerate(csv.reader(f)):
if i == 0:
self.names = row
else:
self.data.append(row)
f.close()
このクラスを呼び出して同じCSVファイルを2回ロードすると、次の出力が表示されました。
data = CSVData(mainCSVPath)
# again
data = CSVData(mainCSVPath)
出力:それが必要すべてname
とdata
パラメータは、このように、設定されることはありませんので、出力が0であるが、空のリストでなければなりません
0
0
0
9363
。それでもdata
の長さは9363で、私のCSVが持つ行の数です。
なぜですか? data
が設定されていないと、self.data
が空のリストになるように修正できますか?