그래서 Google에서이 오류가 발생하면 가장 일반적인 해결책은 클래스의 모든 메소드가 첫 번째 인수로 '자체'라는 것을 확인하는 것입니다. 여기에 오류 :이 첫 번째 인수로 자기를해야합니까 내 모든 방법을 제외하고 간단한 수정과 일반적인 오류 것 같아파이썬에서 '자체'가 전역 적으로 정의되지 않은 가져 오기 오류를 해결하려면 어떻게해야합니까?
File "C:\Users\me\Documents\Project\code\model\TrainEvent.py", line 9, in NameError: global name 'self' is not definedPress any key to continue . . .
. 그런 다음 추적 이름이 클래스 이름이 선언 된 행을 가리키고 있음을 알게되었습니다. 내가 자기와 함께 방법을 부르는 선을 가리키고 있지 않습니다. 이 오류는 오래 전에 제기되고 있습니다. 사실 그것은 수입시에 제기 된 것 같습니다. 다음은 TrainEvent.py입니다. 내 모든 방법은 첫 번째 인수에 대해 자신을 가지고 호출 스택 문제로 클래스 선언 가리키는했지만, 자기에 대해 전역으로 정의되지 않는 경우
from xml.etree.ElementTree import Element
class TrainEvent(object):
def __init__(self, element):
self._element = element
self.MsgId = self.__tagGrab('MsgId')
self.MsgTime = self.__tagGrab('MsgTime')
self.Offset = self.__tagGrab('Offset')
self.TranId = self.__tagGrab('TranId')
self.Portal = self.__tagGrab('Portal')
moveElem = self._element.find('Move')
self.StartTime = self.__tagGrab('StartTime', moveElem)
self.EndTime = self.__tagGrab('EndTime', moveElem)
self.Type = self.__tagGrab('Type', moveElem)
carElem = self._element.find('Car')
self.Name = self.__tagGrab('Name', carElem)
self.UniqueId = self.__tagGrab('UniqueId', carElem)
self.Orientation = self.__tagGrab('Orientation', carElem)
self.Wells = self.__tagGrab('Wells', carElem)
self.Axles = self.__tagGrab('Axles', carElem)
self.Length = self.__tagGrab('Length', carElem)
self.IsEngine = self.__tagGrab('IsEngine', carElem)
self.IsGhost = self.__tagGrab('IsGhost', carElem)
def getTree(self):
aTree = Element('ApsMessage')
self.__addTag(aTree, 'MsgId', self.MsgId)
self.__addTag(aTree, 'MsgTime', self.MsgTime)
self.__addTag(aTree, 'Offset', self.Offset)
self.__addTag(aTree, 'TranId', self.TranId)
self.__addTag(aTree, 'Portal', self.Portal)
moveElem = Element('Move')
self.__addTag(moveElem, 'StartTime', self.StartTime)
self.__addTag(moveElem, 'EndTime', self.EndTime)
self.__addTag(moveElem, 'Type', self.Type)
aTree.append(moveElem)
carElem = Element('Car')
self.__addTag(carElem, 'Name', self.Name)
self.__addTag(carElem, 'UniqueId', self.UniqueId)
self.__addTag(carElem, 'Orientation', self.Orientation)
self.__addTag(carElem, 'Wells', self.Wells)
self.__addTag(carElem, 'Axles', self.Axles)
self.__addTag(carElem, 'Length', self.Length)
self.__addTag(carElem, 'IsEngine', self.IsEngine)
self.__addTag(carElem, 'IsGhost', self.IsGhost)
aTree.append(carElem)
return aTree
def getTag(self):
return self._element.tag
def __tagGrab(self, tagName, parent=self._element):
'''
Helper function for XML reading operations.
'''
return parent.find(tagName).text
def __addTag(self, element, tagName, textValue=None):
'''
Helper function for setting values for XML elements. Note that this
function assumes unique tag name values within element.
'''
element.append(Element(tagName))
if textValue:
element.find(tagName).text = str(textValue)
그래서, 그때 내가 잘못 여기 했는가?
추신 : 어떤 이유로 든 문제가 IronPython에만 해당되는 경우 최신 IronPython 인터프리터를 사용하고 있습니다.
def __tagGrab(self, tagName, parent=None):
if parent is None:
parent = self._element
...
이유는 때이다 : - 오히려 None
을 가지고 본문에 다음 올바른
def __tagGrab(self, tagName, parent=self._element):
당신은 헤더에 self
을 가질 수 없습니다 :
이 잘 설명 답변을 주셔서 감사합니다! –