在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
如果你的方法被称为calculateValue
,那么明确地给它一些计算内容,这在语义上更清晰。此外,该方法是公共的(没有_
将其标记为not-API),因此从外部调用它应该是有意义的。
此外,如果你这样做,你的calculateValue
将独立于self
,使其基本上成为staticmethod
,因此:
class SomeClass:
def getValue( self ):
rawData = someHardware.getData()
return self.calculateValue( rawData )
@staticmethod
def calculateValue( rawData ):
return ( rawData * 100 ) - 5
会让它更清楚。