这是一个非常基本的事情,我想根据优先级对值进行收费,这样如果单独一个变量不够,可以结合使用另一个变量。我重写了几次这个函数,我提出的最好的是下面的,但我仍然觉得这对于一些如此简单的东西来说是不必要的错综复杂的,并且在扩展之后它会变得效率低下。
class Wallet:
Upper, Lower = 5, 5
@classmethod
def Pay(self,Cost):
Total = sum([self.Upper+self.Lower])
if Total >= Cost:
Total = Total-Cost
self.Upper = max(0,Total-self.Lower)
self.Lower = max(0,Total-self.Upper)
print('Upper pocket: %s\nLower pocket: %s' % (self.Upper,self.Lower))
else: print('Purchase failed; the product is too expensive.')
Wallet.Pay(7)