Troubles with 'self'

Richard Speaker richard.speaker at sbcglobal.net
Thu May 8 10:07:40 EDT 2008


I'm somewhat new to Python... and programming in general.  I know enough to be dangerous for sure. I have a feeling the solution to this is simple.  I'm having trouble getting 'self' to initialize or work in a class application. I keep getting the message:
   
      LogFile = self.BasicSummary ( )
NameError: name 'self' is not defined
   
  Code looks like this:
   
  from data_decode import *
  class DataAnalysis:
        
        def PainInTheArse ( self , i , InvI ):
                """This is a filter I made to overcome
                some problems I was having with sine wave
                analysis"""
                TemporaryData = [ ]
                for a in range ( int ( InvI [ i ] ) , len ( InvI ) ):
                        if a < 0:
                                a = 0
                        b = a + 1
                        try:
                                TemporaryData.append ( InvI [ a + i ] )
                                if ( InvI [ b + i ] < 0 and InvI [ b + i + 1 ] > 0 ):
                                        TemporaryData.append ( InvI [ a + i + 1 ] )
                                        break
                        except IndexError:
                                continue
                return TemporaryData
          def GetTheInvIData ( self , InvI ):
                  """"Function determines zero-crossing, and then
                calculates the +/- peaks to get an average """
                CurrentMaxList = [ ]
                CurrentMinList = [ ]
                for i in range ( 0 , len ( InvI ) ):
                        try:
                                if ( InvI [ i ] <= 0 and InvI [ i + 1 ] > 0 ):
                                        TemporaryData = self. PainInTheArse ( i , InvI )
                                        BetterData = self.FilterTheBS ( TemporaryData )
                                        CurrentMaxList.append ( max ( BetterData ) )
                                        CurrentMinList.append ( min ( BetterData ) )
                        except IndexError:                        
                                continue
                  MeanCurrentMax = sum ( CurrentMaxList ) / len ( CurrentMaxList )
                MeanCurrentMin = sum ( CurrentMinList ) / len ( CurrentMinList )
                InvIPeakToPeak = MeanCurrentMax - MeanCurrentMin
                EstPeak = InvIPeakToPeak / 2
                return EstPeak
   
          def FilterTheBS ( self , TemporaryData ):
                """This is another filter I made to overcome
                some problems I was having with sine wave
                analysis"""
                BetterData = [ ]
                UselessData = [ ]
                for i in range ( 0 , len ( TemporaryData ) ):
                        try:
                                if TemporaryData [ i ] == TemporaryData [ i + 1 ]:
                                        UselessData.append ( TemporaryData [ i ] )
                                else:
                                        BetterData.append ( TemporaryData [ i ] )
                        except IndexError:
                                BetterData.append ( TemporaryData [ i ] )
                                continue
                return BetterData
          def BasicSummary ( self ):
                
                DDC = DecodeData( )
                  try:
                          MeanCurrent_A = float ( ( self.GetTheInvIData ( DDC.InvIa ) ) )
                        MeanCurrent_B = float ( ( self.GetTheInvIData ( DDC.InvIb ) ) )
                        MeanCurrent_C = float ( ( self.GetTheInvIData ( DDC.InvIc ) ) )
  except ValueError:
   print'KaFlewie!'
                LogFile = []
                LogFile.append ('DEVICE CURRENT SUMMARY:\n')
                LogFile.append ( '\tPHASE A: AVG Current = +/- %.2f A' % ( MeanCurrent_A ) )
                LogFile.append ( '\tPHASE A: AVG Current = +/- %.2f A' % ( MeanCurrent_B ) )
        
                  return LogFile
        
        LogFile = self.BasicSummary ( )
          for a in LogFile:
  print a
          
        
any and all advice is welcome
   
  Rick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080508/5f0c2de7/attachment.html>


More information about the Python-list mailing list