我有一些數據可以用來表示爲值和比較函數(val, f)
,因此可以通過查看f(val, another)
是否爲True
來檢查另一個值。這很容易。Python比較函數
其中一些只需要>
,<
或==
作爲f
,但是,我找不到使用它們的乾淨方式;我最終寫了一些東西,如ScorePoint(60, lambda a, b: a <= b)
。這很醜陋。
有沒有一種方法,我可以做更多的東西一樣ScorePoint(60, <=)
?
我有一些數據可以用來表示爲值和比較函數(val, f)
,因此可以通過查看f(val, another)
是否爲True
來檢查另一個值。這很容易。Python比較函數
其中一些只需要>
,<
或==
作爲f
,但是,我找不到使用它們的乾淨方式;我最終寫了一些東西,如ScorePoint(60, lambda a, b: a <= b)
。這很醜陋。
有沒有一種方法,我可以做更多的東西一樣ScorePoint(60, <=)
?
的operator
模塊是你的朋友:
import operator
ScorePoint(60, operator.le)
是:
LessEqual = lambda a, b: a <= b
ScorePoint(60, LessEqual)
或更簡潔(但不讀):
LE = lambda a, b: a <= b
ScorePoint(60, LE)
我不禁注意到,你沒有一個「同伴壓力」徽章;) – aaronasterling 2010-09-24 14:03:04
我不禁注意到,人們仍然否決沒有很好的理由。 :-) – 2010-09-27 07:12:57
仍然IC k ---我必須導入一個模塊來處理操作符的功能嗎?但這比自己做得更好。謝謝! – JasonFruit 2010-09-24 14:06:12