2014-03-06 3 views
1

내가 유형의 오류가 발생하지만 난 그렇게파이썬 : 형식 오류는 'STR'객체는

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' object is not callable을받을 이유 'p_energy.dat'의 인수로 str 객체 'rb' 전화를 시도하고있다.

+0

수정 해 주셔서 감사합니다, 지금 치료 :) – Peter

관련 문제