Python Can';找不到语法错误

Python Can';找不到语法错误,python,python-2.7,Python,Python 2.7,我正在写一个简单的基于文本的RPG游戏,我正在尝试让库存系统工作。我从开始就逐字复制了工作代码,但出现了语法错误。我不确定我做错了什么,因为这对我来说很好。很抱歉问你这个新手问题。谢谢大家! class Container(object): def__init__(self, name): self.name = name self.inside = {} def__iter__(self):

我正在写一个简单的基于文本的RPG游戏,我正在尝试让库存系统工作。我从开始就逐字复制了工作代码,但出现了语法错误。我不确定我做错了什么,因为这对我来说很好。很抱歉问你这个新手问题。谢谢大家!

class Container(object):

        def__init__(self, name):
                self.name = name
                self.inside = {}

    def__iter__(self):
            return iter(self.inside.items())

    def__len__(self):
            return len(self.inside)

    def__contains__(self, item):
            return item.raw in self.inside

    def__getitem__(self, item):
            return self.inside[item.raw]

    def__setitem__(self, item, value):
            self.inside[item.raw] = value
            return self[item]

    def add (self, item, quantity=1):
            if quantity < 0:
                    raise ValueError("Negative quantity.  Use remove() instead.")

            if item in self:
                    self[item].quantity += quantity
                    self[item].recalc()

            else:
                    self[item].quantity -= quantity
                    self[item].recalc()
类容器(对象):
def_uuuinit_uuu(self,name):
self.name=名称
self.inside={}
定义(自我):
返回iter(self.inside.items())
定义(自我):
返回透镜(自内)
def__包含__(自身,项目):
返回项目。自身中的原始项目。内部
def_uugetItem_uu(自身,项目):
返回self.inside[item.raw]
定义设置项(自身、项、值):
self.inside[item.raw]=值
返回自我[项目]
def添加(自身、项目、数量=1):
如果数量<0:
raise VALUERROR(“负数。请改用remove()”)
如果项目本身:
自身[项目]。数量+=数量
self[item].recalc()
其他:
自身[项目].数量-=数量
self[item].recalc()
当我运行它时,我得到以下错误:

Traceback (most recent call last):
  File "game.py", line 2, in <module>
    from characters.player import *
  File "/home/dave/Projects/rpg-master/characters/player.py", line 4, in <module>
    from items.container import *
  File "/home/dave/Projects/rpg-master/items/container.py", line 4
    def__init__(self, name):
                           ^
SyntaxError: invalid syntax
回溯(最近一次呼叫最后一次):
文件“game.py”,第2行,在
从characters.player导入*
文件“/home/dave/Projects/rpg master/characters/player.py”,第4行,在
从items.container导入*
文件“/home/dave/Projects/rpg master/items/container.py”,第4行
def_uuuinit_uuu(self,name):
^
SyntaxError:无效语法

非常感谢您的帮助。

您在
def
之后没有空格:

def__init__(self, name):
    self.name = name
    self.inside = {}
应该是

def __init__(self, name):
    self.name = name
    self.inside = {}

依此类推,对于类的其余函数。

首先,
\uuuu init\uuu
没有很好的缩进。其次,应将
def
关键字与实际方法名称分开:

class Container(object):

    def __init__(self, name):
        self.name = name
        self.inside = {}

    def __iter__(self):
        return iter(self.inside.items())

    def __len__(self):
        return len(self.inside)

    def __contains__(self, item):
        return item.raw in self.inside

    def __getitem__(self, item):
        return self.inside[item.raw]

    def __setitem__(self, item, value):
        self.inside[item.raw] = value
        return self[item]
更新:请注意,您正在混合缩进,python通常建议使用4个空格进行缩进,但我看到您同时使用4和8,您可以使用您想要的任何内容,但请坚持使用,不要混合它们,因为您可能会发现意外行为


希望这有帮助

def_uuinit_uu(self,name):
中,在
def
之后加空格。在所有函数声明中,在def之后加空格。请注意,使用具有语法高亮显示的好编辑器应该会犯这样的错误。是的,正如@PauloBu,请确保您的代码缩进良好。非常感谢大家。我在回答中添加了一些关于缩进的注释。希望它会有用。