2014-01-18 43 views
0

我目前正在研究每種內置函數的方法,很多都適用於其他函數。我遇到了使用bool()函數的兩種方法:x.__lshift__x.__pow__。現在,x.__lshift__(y)相當於x<<y,而x.__pow__(y[, z])相當於pow(x, y[, z])何時使用x .__ lshift__和x .__ pow__

我的問題:這兩種方法似乎是幾乎相同的(我用它們的殼體內進行檢查,如果這個問題似乎不是想出來的,我可能使用過錯誤),有什麼區別,用法與bool(),兩者之間?

+0

他們是不同的功能! – Antimony

+0

@Antimony ....在'bool()'函數中使用方法的區別 – TimLayne

+0

你有源代碼的方便鏈接嗎? – Antimony

回答

1

在python中,您可以通過重寫一些特殊的成員方法來重載操作符。您可以通過覆蓋lshift來更改<運營商的行爲。這與其他操作員及其相應功能相同。

看到這個:operator overloading in python