我正在制作一個程式,該程式將從文本檔案中讀取包含問題、答案和得分的行,這些行分別位于第 i、i 1 和 i 2 行。這些行將被讀取,然后保存在 TreasureChest 型別的陣列中。但是當我得到列印時,我得到了輸出:
[<__main__.TreasureChest object at 0x7f89197c5470>, <__main__.TreasureChest object at 0x7f89197c54a8>, <__main__.TreasureChest object at 0x7f89197c5400>, <__main__.TreasureChest object at 0x7f89197c5438>, <__main__.TreasureChest object at 0x7f89197c57b8>, <__main__.TreasureChest object at 0x7f89197c5828>, <__main__.TreasureChest object at 0x7f89197c5860>, <__main__.TreasureChest object at 0x7f89197c5898>, <__main__.TreasureChest object at 0x7f89197c58d0>, <__main__.TreasureChest object at 0x7f89197c5908>, <__main__.TreasureChest object at 0x7f89197c5940>, <__main__.TreasureChest object at 0x7f89197c5978>, <__main__.TreasureChest object at 0x7f89197c59b0>, <__main__.TreasureChest object at 0x7f89197c59e8>, <__main__.TreasureChest object at 0x7f89197c5a20>]
我知道這是關于列印字串而不是物件位置的常見問題,但這里的答案都沒有在我的情況下起作用或有用。
這是代碼:
import linecache
searchfile = open("TreasureChestData.txt", 'r')
class TreasureChest:
def __init__(self, question, answer, points):
self.question = question
self.answer = answer
self.points = points
def read_data():
searchfile = open("TreasureChestData.txt", 'r')
arrayTreasure = []
for i in range (1, 16):
question = linecache.getline('TreasureChestData.txt', i)
answer = linecache.getline('TreasureChestData.txt', (i 1))
pointer = linecache.getline('TreasureChestData.txt', (i 2))
arrayTreasure.append(TreasureChest(question, answer, pointer))
i = i 3
print (len(arrayTreasure))
return arrayTreasure
searchfile.close()
data = read_data()
print (data)
uj5u.com熱心網友回復:
定義類的__repr__(控制它在容器中的顯示方式,以及其他地方)和它的__str__(控制它在列印時的顯示方式)。它們可以相同,如此處所示。
class TreasureChest:
def __init__(self, question, answer, points):
self.question = question
self.answer = answer
self.points = points
def __repr__(self):
return f'{type(self).__name__}("{self.question}")'
__str__ = __repr__
t = TreasureChest("What is the airspeed veloicity of an unladen swallow?", 42, 100)
print(t)
uj5u.com熱心網友回復:
__str__您所看到的只是特殊方法的默認實作。您所要做的就是def __str__(self):,并讓它回傳您想要使用的任何字串。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465530.html
