ファイルからデータを読み取り、リストに格納しました。それを、クラスにして、呼び出せるようにしたいのです。関数を使わないでmain関数の中では、クラスとして呼び出せました。表示用に作った関数を使って表示させたいのですが、関数の引数に何を代入したらよいかが分かりません。
コードは以下のようです。どうぞよろしくお願いいたします。
python
1class Player: 2 def __init__(self,key,name,profile): 3 self.key = key 4 self.name = name 5 self.profile = profile 6 7data =[] 8f = open('zac_japan.txt','r',encoding = 'utf-8') 9data = f.readlines() 10f.close 11 12def print_player(d):#この関数を使いたい 13 n = len(d) 14 for i in range(n): 15 print("{:d},{:s},{:s}".format(int(d[i].key),d[i].name,d[i].profile),end="") 16 print("") 17 18data2 = [] 19data3=[] 20 21for n in data: 22 data2 = (n.split()) 23 data3 = (Player(data2[0],data2[1],data2[2])) 24 print(data3.key,data3.name,data3.profile)#これで関数を使わないで表示させることはできる 25
疑問点
print(data2[0]),print(data2[1]),print(data2[2])はそれぞれ正しく表示されるが、
data3 =[]
というリストを用意して、そこに
data2.append(Player(data2[0],data2[1],data2[2]))
として追加させたところ、
<main.Player object at 0012....
が追加されていました。どうしてこのように変換されてしまうのでしょうか。解決策を教えていただきたいです。
回答2件
あなたの回答
tips
プレビュー