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