在Python中,我应该在下面的代码中编写方法,如选项1或选项2吗?谢谢!
from someHardware import someHardware
# Option 1, pass the data into method
class SomeClass:
def getValue( self ):
rawData = someHardware.getData()
return self.calculateValue( rawData )
def calculateValue( self, rawData ):
return ( rawData * 100 ) - 5
# Option 2, save data as instance variable
class SomeClass:
def getValue( self ):
self.rawData = someHardware.getData()
return self.calculateValue()
def calculateValue( self ):
return ( self.rawData * 100 ) - 5
答案 0 :(得分:1)
如果你的方法被调用calculateValue
,最后给它一些计算的东西,这在语义上更清晰。此外,该方法是公开的(没有_
将其标记为非API),因此在外部调用它是有意义的。
此外,如果您这样做,您的calculateValue
将独立于self
,使其基本上为staticmethod
,因此:
class SomeClass:
def getValue( self ):
rawData = someHardware.getData()
return self.calculateValue( rawData )
@staticmethod
def calculateValue( rawData ):
return ( rawData * 100 ) - 5
会更清楚。