【问题标题】:python: TypeError: 'str' object is not callablepython:TypeError:'str'对象不可调用
【发布时间】:2014-03-07 04:58:09
【问题描述】:

我正在尝试用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

感谢您的帮助。

【问题讨论】:

  • 您希望'rb'('p_energy.dat') 做什么?

标签: python typeerror


【解决方案1】:

这不是正确的语法。应该是:

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

你实际上在做的是:

'rb'('p_energy.dat') 正在尝试使用'p_energy.dat' 的参数调用str 对象'rb',这就是您收到错误'str' object is not callable 的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2015-03-07
    相关资源
    最近更新 更多