2014-03-06 83 views
1

我試圖加載與鹹菜一個二進制文件,在列表中的記錄,像這樣蟒蛇:類型錯誤:「海峽」對象不是可調用

import pickle 
class player_energy_usage(): 
def __init__(self): 
    self.weapons = 25 
    elf.shields = 25 
    self.life_support = 25 
    self.engines = 25 

def p_eu_init(): 
    global p_energy 
    p_energy = [] 
    player_ship_energy = player_energy_usage() 
    p_energy.append(player_ship_energy) 
    pickle.dump(p_energy,open('p_energy.dat','wb')) 

p_eu_init() 
pickle.load('rb'('p_energy.dat')) 
print('Weapons are using {0}% of energy'.format(p_energy[0].weapons)) 
print('Shields are using {0}% of energy'.format(p_energy[0].shields)) 
print('Life Support is using {0}% of energy'.format(p_energy[0].life_support)) 
print('Engines is using {0}% of energy'.format(p_energy[0].engines)) 

但是我得到一個類型的錯誤,

Traceback (most recent call last): 
File "E:/Python texted based game/Tests/file loading test.py", line 18, in <module> 
pickle.load('rb'('p_energy.dat')) 
TypeError: 'str' object is not callable 

感謝您的幫助。

+0

你在期待「rb」('p_energy.dat')'做什麼? – NPE

回答

4

這不是正確的語法。它應該是代替:

p_energy = pickle.load(open('p_energy.dat', 'rb')) 

你實際上做的是:

'rb'('p_energy.dat')試圖調用str對象'rb''p_energy.dat'參數,這就是爲什麼你的錯誤'str' object is not callable

+0

感謝您的解決,現在工作:) – Peter

相關問題