Re: Troubles with 'self'

2008-05-08 Thread John Schroeder
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 <
[EMAIL PROTECTED]> 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
>
--
http://mail.python.org/mailman/listinfo/python-list

Troubles with 'self'

2008-05-08 Thread Richard Speaker
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