Python最佳实践:传递到方法或实例变量



在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

会让它更清楚。

最新更新