python: TypeError: 'str' 对象不可调用
我正在尝试用pickle加载一个二进制文件,这个文件里面有一个列表记录,像这样:
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
谢谢你的帮助。
1 个回答
4
这不是正确的写法。应该是这样:
p_energy = pickle.load(open('p_energy.dat', 'rb'))
你实际上在做的是:
'rb'('p_energy.dat')
试图把一个字符串 'rb'
当作函数来调用,并传入参数 'p_energy.dat'
,这就是你为什么会看到错误提示 'str' object is not callable
的原因。