我是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
#
答案 0 :(得分:0)
您的缩进是制表符和空格的混合,可能会导致意外行为。这是由于somewhat arcane rules确定了标签的解释方式:
首先,标签被替换(从左到右)一到八个空格,使得直到并包括替换的字符总数是八的倍数(这与Unix使用的规则相同) )。然后,第一个非空白字符前面的空格总数确定行的缩进。缩进不能使用反斜杠在多个物理行上分割;直到第一个反斜杠的空格决定了缩进。
在此图像中,制表符为箭头,空格为点。您的self.editMenuAction =
行有效地有12个缩进空格。您的self.editMenuTool =
行实际上有16个。
根据PEP 8,您应该专门使用空格进行缩进。