2016-10-06 51 views
-2

我是新來的蟒蛇。我想學習如何製作和使用「常量」。這裏是我的代碼:常量在if塊中如何工作?

class Constantine(object): 
    ONE = 1 
    TWO = 2 

    def test(self, code): 
     if code not in(self.ONE, self.TWO): 
      print("safe") 
     else: 
      print("not safe") 

keeanu = Constantine() 
keeanu.test(1) 

我希望代碼打印安全。但是,它打印不安全。爲什麼?

+3

'1'不在'(1,2)'中嗎?對此的答案是你混淆的線索。 –

+1

「常量」是什麼意思? Python並沒有真正的常量。我們只是假裝他們是。 –

回答

3

您正在測試code是否(self.ONE, self.TWO)。如果它發現,它會打印not safe,它會這樣做。

找到它的原因是因爲解釋器首先查找self.ONEself.TWO作爲實例變量。如果在這個級別沒有找到它們,解釋器會試圖將它們解決爲類變量。這代表您的代碼成功。

+0

謝謝。這段代碼實際上是我正在使用的真實代碼的替代品。我仍然在實際代碼中發生錯誤。有單元測試和所有。天哪,我應該在發佈之前檢查代碼。 –

+0

TigerhawkT3 - 抱歉,您能否刪除您的答案,以便我可以刪除此問題?希望你能理解我的情況。如果你願意的話,我可以補充一些其他的問題來彌補這個問題上的選票損失。 –

+0

@BoratSagdiyev - 據我所知,你應該能夠刪除你的問題,無論答案。它只是提示你確認,如果問題有答案。這樣,如果您決定在未來取消刪除它,它仍然會有相應的答案。 – TigerhawkT3