def commonMenu中的缩进错误

时间:2014-03-18 13:00:35

标签: python-2.7 maya indentation

我是Python的新手,但MEL已知道。 目前我尝试为我的专业化项目(快速装配工具)创建菜单。 我每次都会收到此错误,但我无法找到合理的解释。 错误是意外缩进,它出现在def中以创建菜单。

我真的很想知道这件事情,提前谢谢:)

代码:

#Python script: Autorig v0.0.1
#Interface

import maya.cmds as cmds

#Create main window
#
class AR_OptionWindow(object):
    def __init__(self):
        self.window = 'ar_optionsWindow'
        self.title = 'Options Window'
        self.size = (546, 350)
        self.supportsToolAction = False
    def commonMenu(self):
        self.editMenu = cmds.menu(label = 'Edit')
        self.editMenuSave = cmds.menuItem(
            label='Save Settings'
        )
        self.editMenuReset = cmds.menuItem(
            label='Reset Settings'
        )
        self.editMenuDiv = cmds.menuItem(d=True)
        self.editMenuRadio = cmds.radioMenuItemCollection()
        self.editMenuAction = cmds.menuItem(
            label='As Action',
            radioButton=True,
            enable=self.supportsToolAction
        )
        self.editMenuTool = cmds.menuItem(
            label='As Tool',
            radioButton=True,
            enable=self.supportsToolAction
        )
        self.helpMenu = cmds.menuItem(label='Help')
        self.helpMenuItem = cmds.menuItem(
            label='Help in %s'%self.title
        )
    def create(self):
        if cmds.window(self.window, exists=True):
            cmds.deleteUI(self.window, window=True)
        self.window = cmds.window(
            self.window,
            title=self.title,
            widthHeight=self.size
        )
        cmds.showWindow()

我收到以下错误:

# Error: unexpected indent 
# File "<maya console>", line 30 
# self.editMenuTool = cmds.menuItem( 
# ^ 
# IndentationError: unexpected indent 
#

1 个答案:

答案 0 :(得分:0)

您的缩进是制表符和空格的混合,可能会导致意外行为。这是由于somewhat arcane rules确定了标签的解释方式:

  

首先,标签被替换(从左到右)一到八个空格,使得直到并包括替换的字符总数是八的倍数(这与Unix使用的规则相同) )。然后,第一个非空白字符前面的空格总数确定行的缩进。缩进不能使用反斜杠在多个物理行上分割;直到第一个反斜杠的空格决定了缩进。

enter image description here

在此图像中,制表符为箭头,空格为点。您的self.editMenuAction =行有效地有12个缩进空格。您的self.editMenuTool =行实际上有16个。

根据PEP 8,您应该专门使用空格进行缩进。