Troubles with 'self'

John Schroeder jschroed at gmail.com
Thu May 8 12:53:36 EDT 2008


I think you need to make an instance of your class.  Try this:

my_class_instance = DataAnalysis()
LogFile = my_class_instance.BasicSummary ( )

On Thu, May 8, 2008 at 7:07 AM, Richard Speaker <
richard.speaker at sbcglobal.net> wrote:

> 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
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080508/817b3d6f/attachment-0001.html>


More information about the Python-list mailing list