我刚刚开始使用面向对象的编程,我正在尝试制作一个关于照顾角色的游戏。
以下是我的代码的一部分:
class Game(object):
def __init__(self):
self.hunger = 30
self.thirst = 30
self.fun = 30
self.energy = 30
.........................
def new_character():
name = input("Name your character: ")
name = Game()
name()
但是当我跑步时,我得到:
Traceback (most recent call last):
File "C:\Python34\Virtual Human Simulator.py", line 185, in <module>
new_character_init()
File "C:\Python34\Virtual Human Simulator.py", line 182, in new_character_init
name()
TypeError: 'Game' object is not callable
我一直在互联网上搜索那些可能会问过这个问题的人,但我得到的只是模块和数据类型的错误,而不是类,而且文档根本没用。 这个问题的原因是什么以及如何解决它?
答案 0 :(得分:3)
正如错误所指出的那样,您正在尝试将新创建的对象用作函数。 name()
。除非您的类定义了__call__
方法,否则将失败。告诉我们你想要实现的目标可能更有用